{"version":3,"sources":["form builder/question_builder.js"],"names":["ns4","document","layers","op5","navigator","userAgent","indexOf","op6","agt","toLowerCase","mac","ie","ie8","mac_ie","lightbox_pageScrollX","lightbox_pageScrollY","lightbox_bIsOpen","http","createRequestObject","xmlHttp","xmlDoc","qb_handleGlobalModalSelection","oSelected","field","value","type","$field","$","html","attr","css","eval","val","lightbox_OpenFieldFind","windowTitle","windowText","fields","closeFunction","popwidth","popheight","tablekey","aliasfield","tablelist","appendalias","useStagingDB","isMgrFront","bUseClassicLightbox","mgrPrefix","sStagingDB","sURL","URLEncode","right","getElementById","style","width","height","display","lightbox_Position","innerHTML","visibility","jQuery","fn","colorbox","href","title","iframe","innerHeight","innerWidth","opacity","onClosed","lightbox_LostFocus","lightbox_OpenFind","sql_id","sql_version","sql_revision","cat_id","db_extra","filter","primary_key","order_by","columns","search_columns","draw_styles","classic_style","querystring","blankload","selectpop","distinctq","prepopvalue","radiokey","prepopradio","showActionsColumn","countfield","bUseOverlayClose","sOverrideDbCon","sDBServer","sDBName","bUseAqt","oQS","version","revision","extrafields","orderby","cols","searchcols","func","drawstyles","classicstyle","primary","loadblank","usedistinct","prepop","preselect","showactions","countfieldname","overridedbcon","dbserver","dbname","use_aqt","key","param","documentElement","scrollTop","scrollLeft","body","compatMode","offsetHeight","overlayClose","close","err","lightbox_setFindValue","values","types","aFields","split","aValues","aTypes","i","length","src","color","backgroundColor","trim","window","setTimeout","lightbox_GetWindowHeight","windowHeight","clientHeight","lightbox_GetWindowWidth","windowWidth","clientWidth","contentElement","contentHeight","contentWidth","offsetWidth","top","left","lightbox_ClearHidden","vFieldName","vCheckDisp","dispatchEvent","Event","fncCalculateDimensions","vField","iTotal","iFeet","iInches","sQuestionID","isNaN","parseInt","change","addItems","dl","prop","label","items","find","remove","end","append","props","Array","text","add","added","each","index","item","j","inArray","Key","fncQbFilterNested","id","num","nextLabel","selectedVal","removeAttr","x","click","event","preventDefault","onload","onresize","onscroll","aDefaultQPCSS","QuickPickSelectChange","oPreview","oSelect","undefined","oDefCSS","backgroundImage","oCSS","ClearQuickPick","AddMSBOptions","vMSB","vText","vValue","newOpt","Option","iSelLength","options","DeleteMSBOptions","vIndex","MoveMSBOptions","vType","sFromBox","sToBox","iOpt","aSelectedText","aSelectedValues","iSelectedCount","selected","MSBDuplicator","MSBSwap","vOpt1","vOpt2","strHoldVal","MoveMSBItemUp","iLen","MoveMSBItemDown","bFirst","bUsePos","sPosField","sSpacer","sValue","alert","message","sAvailCount","replace","sSelCount","multifileHandleUploadData","sQuestionKey","aPostedKeys","aFilenames","$container","parent","$names","not","join","multifileAdjustIFrameHeight","$frame","oFrameDoc","contentDocument","iHeight","MIBuildAnswer","vMI","aMIFields","strAString","strDString","bUseXML","bDistRecs","strDist","oDistInput","strMIValID","iEditMode","strFieldType","strFieldValue","iOpts","goTo","sAddedItem","aAddedItemValues","MICalcChars","check","iF","MIGetCheckedValue","MIResetCheckedValue","iCheck","getElementsByName","checked","RegExp","MIEditOption","disabled","MIToggleLinkDisplay","MIAddOpt","MIDuplicate","MICheckEntryLimit","vSelect","vOptionValue","vOptionDisp","MIGetSelectedIndex","vSelectBox","vRadioName","vFormName","oForm","iForm","forms","oRadioCheck","elements","iRadioLength","MISetCheckedValue","vRadioValue","MISwap","MIBumpUp","MIBumpDown","MIEdit","iSel","strSelectedAnswer","oEntryXML","createXMLDoc","iField","strValue","getNodeValue","aDelimeters","iDelim","strKey","MIDivide","vSel","MIClone","iClone","confirm","iRemain","MIRemoveSelectedAnswers","iRemove","MIDeleteOption","strJSFunc","MIRemoveAllAnswers","vAlert","MIResetCalc","vString","vDivider","strReplace","genID","strPos","strDocumentElement","strParentNode","strXML","strEntrySpacer","MICharacterLimit","strField","strLabel","iLimit","iRemaining","iCurLen","iCalc","vShowMsg","iEntryLimit","MILoadInitialLimit","iOption","vEdit","objMouseX","objMouseY","mouseX","mouseY","tempX","tempY","sizeX","sizeY","resizeDirection","currentObj","initialSizes","firstResize","addResizer","dir","table","createElement","cellPadding","cellSpacing","className","tbody","appendChild","tr","container","td","resizeSurround","onmousemove","e","resizeObject","onmouseup","resizeRelease","onmousedown","grabResize","oldElement","newElement","tempElement","parentNode","replaceChild","getMouseXY","clearSelection","rows","size","objectId","resizeDir","findSize","events","clientX","clientY","pageX","pageY","findPos","obj","curleft","curtop","offsetParent","offsetLeft","offsetTop","pixelWidth","pixelHeight","selection","empty","getSelection","removeAllRanges","DisplayActivator","vName","this","FormName","aGroups","Add","vGroup","SetFormName","ShowHide","iGroup","Test","DisplayGroup","aElements","aHiders","aConditions","AddId","vID","HideId","AddCondition","vValues","aArgs","iArgs","strName","strType","enable","enableNext","bShow","bMultilist","bPassed","iTest","getDispCheckedValue","iCondition","iVal","iElement","show","customForm","data","removeData","hide","iHideMe","sCheckedVals","oRadio","XMLFile","ActiveXObject","loadXML","implementation","createDocument","DOMParser","parseFromString","loadXMLDoc","async","load","serializeXML","XMLObj","xml","XMLSerializer","serializeToString","xmlDocObj","tagName","getElementsByTagName","childNodes","nodeValue","GetXmlHttpObject","XMLHttpRequest","MakeAJAXRequest","fncHandleData","strPage","bAsync","aShow","aHide","bDisable","errorMsg","bDebug","getQueryVariable","open","onreadystatechange","HandleData","send","MakeAJASPRequest","vReturnXML","readyState","responseText","strResponse","HideLoading","fncValidateCaptcha","vPageName","UpdateCaptchaCheck","strCheck","aSSBCals","AddSSBFilter","vSSB","deleteRow","iAdminMode","iUseZip","sDefaultFilter","oSSBTable","iLastRow","iRow","oFilter","insertRow","sRowBuilder","sLColor1","sRColor1","sLColor2","sRColor2","sLVal1","sRVal1","sLVal2","sRVal2","sJoinType","sSearchField","sNumCheck","sDateCheck","sNotCheck","isArray","oCell0","insertCell","align","oCell1","CheckSSBSelected","BuildSSBCommandList","oCell2","oCell3","oCell4","oCell5","ChangeSSBValueFields","SSBUseNumeric","ShowSSBDates","oCell7","oCell8","BuildSSBValue","GetSSBFFTables","AddSSBFirstRow","colSpan","RemoveSSBFilter","vRow","vRowNum","rowIndex","iMaxFilterCount","strSS","strParenth","iLeftParenth","iRightParenth","strNumeric","iFilter","SSBToggleParenthesis","vSide","vPos","oPLink","oPStatus","vDefault","vAdminMode","vUseZip","sCommandList","vCurrent","aDateParts1","aDateParts2","sVal1","sVal2","sVal3","iDateType1","iDateType2","iDateQty1","iDateQty2","sTime1","sTime2","sWhen1","sWhen2","CalendarPopup","showYearNavigation","strSBtwn","SSBLoadInitial","aFilters","aFilterInfo","bL1","bL2","bR1","bR2","bNot","bDate","bNum","isDate","SetDateForDateTime","vYear","vMonth","vDay","vInput","BuildDateTime","vDT","sDateTime","validator","form","divClass","jumpOnError","jumpToTop","disableForm","disableWithLightbox","sIDToReplace","addField","name","required","self","numItems","validatorField","writeElements","addCondition","child","parentType","condition","conditions","validatorCondition","bCheck","returnVal","jumpTo","bJumpToQuestion","test","validateField","clearValidation","scroll","animate","offset","DisableLB","clear","sElements","replaceWith","write","getCheckedValue","conditioner","isRegExp","isString","regexpTypes","regExpressions","GLOBAL_JS_EMAIL_REGEX","vdiv","tdiv","isCheckOrRadio","is","trimmedValue","bIsDisabled","oRegEx","matchReg","slice","matchName","matchVal","stringToTrim","arguments","constructor","toString","match","radioName","radioObj","radioLength","oLBG","oLPic","scrollMaxY","scrollWidth","scrollHeight","pageYOffset","HideDisableLB","string","SAFECHARS","HEX","plaintext","encoded","ch","charAt","charCode","charCodeAt","divide","divider","appName","dec2hex","dec","hD","hex","substr","hhex","hex2ddec","Math","round","random","str","n","String","substring","mid","start","len","iEnd","NumbersOnly","myfield","keychar","keyCode","which","fromCharCode","NumbersOnlyWithDecimal","vQSVar","aVars","location","search","iVar","aQS","dateStr","matchArray","month","day","year","isleap","escapeHTML","div","createTextNode","fncLongDate","vDate","Date","parse","dMyDate","sDay","getDay","sMonth","getMonth","sWeekday","getDate","sYear","getYear","sHours","getHours","sMins","getMinutes","sSecs","getSeconds","sMornAfter","aDays","aMonths"],"mappings":"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","file":"question_builder.js","sourcesContent":["\r\n\t/************************************************************************************\r\n\t*** START GLOBAL VARIABLES **********************************************************\r\n\t************************************************************************************/\r\n\t\r\n\t/* Browser Checks */\r\n\tvar ns4 = document.layers;\r\n\tvar op5 = (navigator.userAgent.indexOf(\"Opera 5\")!=-1) ||(navigator.userAgent.indexOf(\"Opera/5\")!=-1);\r\n\tvar op6 = (navigator.userAgent.indexOf(\"Opera 6\")!=-1) ||(navigator.userAgent.indexOf(\"Opera/6\")!=-1);\r\n\tvar agt = navigator.userAgent.toLowerCase();\r\n\tvar mac = (agt.indexOf(\"mac\")!=-1);\r\n\tvar ie = (agt.indexOf(\"msie\") != -1);\r\n\tvar ie8 = (agt.indexOf(\"msie 8\") != -1);\r\n\tvar mac_ie = mac && ie;\r\n\r\n\tvar lightbox_pageScrollX;\r\n\tvar lightbox_pageScrollY;\r\n\tvar lightbox_bIsOpen;\r\n\r\n\t// XMLHttpRequest Object\r\n\tvar http = createRequestObject();\r\n\tvar xmlHttp;\r\n\tvar xmlDoc;\r\n\r\n\t/************************************************************************************\r\n\t*** END GLOBAL VARIABLES ************************************************************\r\n\t************************************************************************************/\t\r\n\r\n\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** START EVENT HANDLERS ************************************************************\r\n\t************************************************************************************/\r\n\r\n\t/*\r\n\t * Register Event Handlers after DOM is loaded\r\n\t */\r\n\tjQuery(function(){\r\n\t\t\r\n\t\t/**\r\n\t\t * Prevent Find Data Popup Links from scrolling to top of the\r\n\t\t * page by registering this event handler for each link/button\r\n\t\t * @author dand\r\n\t\t * @since 9/29/2010\r\n\t\t */\r\n\t\tjQuery('.find_popup_link').click(function(event){\r\n\t\t\tevent.preventDefault();\r\n\t\t});\r\n\r\n\t});\r\n\r\n\t/************************************************************************************\r\n\t*** END EVENT HANDLERS **************************************************************\r\n\t************************************************************************************/\r\n\r\n\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** START GLOBAL MODAL FUNCTIONS ****************************************************\r\n\t*************************************************************************************/\r\n\tfunction qb_handleGlobalModalSelection(oSelected) {\r\n\t\tfor (field in oSelected) {\r\n\t\t\tvar value = oSelected[field].value;\r\n\t\t\tvar type = oSelected[field].type.toLowerCase();\r\n\t\t\tvar $field = $('#' + field);\r\n\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase 'html':\r\n\t\t\t\t\t$field.html(value);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'image':\r\n\t\t\t\t\t$field.attr('src', value);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'fontcolor':\r\n\t\t\t\t\t$field.css('color', value);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'bgcolor':\r\n\t\t\t\t\t$field.css('backgroundColor', value);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'js':\r\n\t\t\t\t\teval(value);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t$field.val(value);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t/************************************************************************************\r\n\t*** END GLOBAL MODAL FUNCTIONS ******************************************************\r\n\t************************************************************************************/\r\n\r\n\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** START LIGHTBOX SCRIPTS **********************************************************\r\n\t*************************************************************************************/\r\n\r\n\tfunction lightbox_OpenFieldFind(windowTitle, windowText, fields, closeFunction, popwidth, popheight, tablekey, aliasfield, tablelist, appendalias, useStagingDB, isMgrFront, bUseClassicLightbox) {\r\n\t\tif(typeof bUseClassicLightbox == \"undefined\"){\r\n\t\t\tbUseClassicLightbox = true;\r\n\t\t}\r\n\t\t\r\n\t\tvar mgrPrefix = '';\r\n\r\n\t\tif (isMgrFront==true){\r\n\t\t\tmgrPrefix = 'mgr_';\r\n\t\t}\r\n\r\n\t\tvar sStagingDB = '';\r\n\r\n\t\tif (useStagingDB==true){\r\n\t\t\tsStagingDB = '&db_type=staging';\r\n\t\t}\r\n\r\n\t\tvar sURL = mgrPrefix + 'field_finder.asp' +\r\n\t\t\t\t'?fields=' + fields +\r\n\t\t\t\t'&func=' + URLEncode(closeFunction) +\r\n\t\t\t\t'&wdbst_key=' + tablekey +\r\n\t\t\t\t'&alias=' + URLEncode(aliasfield) +\r\n\t\t\t\t'&tables=' + tablelist +\r\n\t\t\t\t'&append_alias=' + appendalias +\r\n\t\t\t\tsStagingDB + \r\n\t\t\t\t'&modal=1';\r\n\r\n\t\tif (right(popheight, 1)!='%'){\r\n\t\t\tpopheight += 'px';\r\n\t\t}\r\n\r\n\t\tif (right(popwidth, 1)!='%'){\r\n\t\t\tpopwidth += 'px';\r\n\t\t}\r\n\r\n\t\tif (bUseClassicLightbox){\r\n\r\n\t\t\tdocument.getElementById('lightbox').style.width = popwidth;\r\n\t\t\tdocument.getElementById('lightbox').style.height = popheight;\r\n\r\n\t\t\tdocument.getElementById('lightbox_lostfocus').style.display = 'block';\r\n\t\t\tdocument.getElementById('lightbox').style.display = 'block';\r\n\r\n\t\t\tlightbox_Position();\r\n\r\n\t\t\tdocument.getElementById('lightbox_search_results').innerHTML = '';\r\n\t\t\tdocument.getElementById('lightbox_search_section').style.display = 'none';\r\n\t\t\tdocument.getElementById('lightbox_header').innerHTML = windowTitle;\r\n\t\t\tdocument.getElementById('lightbox_desc').innerHTML = windowText;\r\n\t\t\t\r\n\t\t\t//cainb - 3/23/2012 - removed IE fix - it was causing \"growing\" lightboxes.\r\n\r\n\t\t\tdocument.getElementById('lightbox_lostfocus').style.visibility = 'visible';\r\n\t\t\tdocument.getElementById('lightbox').style.visibility = 'visible';\r\n\t\t} else {\r\n\t\t\tjQuery.fn.colorbox({\r\n\t\t\t\thref: sURL,\r\n\t\t\t\ttitle: windowTitle,\r\n\t\t\t\tiframe: true,\r\n\t\t\t\tinnerHeight: popheight,\r\n\t\t\t\tinnerWidth: popwidth,\r\n\t\t\t\topacity: 0.3,\r\n\t\t\t\tonClosed: function(){lightbox_LostFocus();}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tlightbox_bIsOpen = true;\r\n\t}\r\n\r\n\tfunction lightbox_OpenFind(windowTitle, windowText, sql_id, sql_version, sql_revision, cat_id, db_extra, filter, primary_key, order_by, columns, search_columns, fields, closeFunction, css, draw_styles, classic_style, querystring, popwidth, popheight, isMgrFront, blankload, selectpop, distinctq, prepopvalue, radiokey, prepopradio, showActionsColumn, countfield, bUseClassicLightbox, bUseOverlayClose, sOverrideDbCon, sDBServer, sDBName, bUseAqt) {\r\n\t\tvar oQS = {\r\n\t\t\tsql_id: sql_id,\r\n\t\t\tversion: sql_version,\r\n\t\t\trevision: sql_revision,\r\n\t\t\tcat_id: cat_id,\r\n\t\t\textrafields: db_extra,\r\n\t\t\tfilter: filter,\r\n\t\t\torderby: order_by,\r\n\t\t\tcols: columns,\r\n\t\t\tsearchcols: search_columns,\r\n\t\t\tfields: fields,\r\n\t\t\tfunc: closeFunction,\r\n\t\t\tcss: css,\r\n\t\t\tdrawstyles: draw_styles,\r\n\t\t\tclassicstyle: classic_style,\r\n\t\t\tprimary: primary_key,\r\n\t\t\tloadblank: blankload ? 1 : 0,\r\n\t\t\tselectpop: selectpop,\r\n\t\t\tusedistinct: distinctq ? 1 : 0,\r\n\t\t\tprepop: prepopvalue,\r\n\t\t\tradiokey: radiokey,\r\n\t\t\tpreselect: prepopradio,\r\n\t\t\tshowactions: showActionsColumn,\r\n\t\t\tcountfieldname: countfield,\r\n\t\t\toverridedbcon: sOverrideDbCon,\r\n\t\t\tdbserver: sDBServer,\r\n\t\t\tdbname: sDBName,\r\n\t\t\tuse_aqt: bUseAqt ? 1 : 0\r\n\t\t}\r\n\r\n\t\tfor (key in oQS) {\r\n\t\t\tif (oQS[key] == null) {\r\n\t\t\t\tdelete oQS[key];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar mgrPrefix = isMgrFront ? 'mgr_' : '';\r\n\r\n\t\t//Build the URL\r\n\t\tvar sURL = 'i_i_' + mgrPrefix + 'modal_search.asp?' + jQuery.param(oQS) + querystring;\r\n\r\n\t\tif ( right(popheight, 1) != '%' ) {\r\n\t\t\tpopheight += 'px';\r\n\t\t}\r\n\r\n\t\tif ( right(popwidth, 1) != '%' ) {\r\n\t\t\tpopwidth += 'px';\r\n\t\t}\r\n\r\n\t\tif ( bUseClassicLightbox ) {\r\n\t\t\t//Original Lightbox\r\n\t\t\tif (document.documentElement && document.documentElement.scrollTop) {\r\n\t\t\t\t// IE6 +4.01\r\n\t\t\t\tlightbox_pageScrollY = document.documentElement.scrollTop;\r\n\t\t\t\tlightbox_pageScrollX = document.documentElement.scrollLeft;\r\n\t\t\t} else if (document.body) {\r\n\t\t\t\t// IE5 or DTD 3.2\r\n\t\t\t\tlightbox_pageScrollY = document.body.scrollTop;\r\n\t\t\t\tlightbox_pageScrollX = document.body.scrollLeft;\r\n\t\t\t}\r\n\r\n\t\t\tdocument.getElementById('lightbox').style.width = popwidth;\r\n\t\t\tdocument.getElementById('lightbox').style.height = popheight;\r\n\r\n\t\t\tdocument.getElementById('lightbox_lostfocus').style.display = 'block';\r\n\t\t\tdocument.getElementById('lightbox').style.display = 'block';\r\n\r\n\t\t\tlightbox_Position();\r\n\r\n\t\t\tdocument.getElementById('lightbox_search_results').innerHTML = '';\r\n\t\t\tdocument.getElementById('lightbox_search_section').style.display='none';\r\n\t\t\tdocument.getElementById('lightbox_header').innerHTML=windowTitle;\r\n\t\t\tdocument.getElementById('lightbox_desc').innerHTML=windowText;\r\n\r\n\t\t\t// Fix IE for DTD 4.0 (SCM 1/18/2010 - Broken in IE8 so made sure it is an older version)\r\n\t\t\t\r\n\t\t\tif ( ! ie8 && ie && document.documentElement && document.compatMode == 'CSS1Compat' ) {\r\n\t\t\t\tdocument.getElementById('lightbox_search_results_container').style.height =\r\n\t\t\t\t(document.getElementById('lightbox_search_results_container').offsetHeight - 1 - \r\n\t\t\t\t(document.getElementById(\"lightbox_header\").offsetHeight + \r\n\t\t\t\tdocument.getElementById(\"lightbox_desc\").offsetHeight + \r\n\t\t\t\tdocument.getElementById(\"lightbox_search_section\").offsetHeight)) + 'px';\r\n\t\t\t}\t\r\n\t\t\t\r\n\r\n\t\t\tdocument.getElementById('lightbox_lostfocus').style.visibility = 'visible';\r\n\t\t\tdocument.getElementById('lightbox').style.visibility = 'visible';\r\n\t\t} else {\r\n\t\t\t//New good lightbox, also called colorbox\r\n\t\t\tjQuery.fn.colorbox({\r\n\t\t\t\thref: sURL,\r\n\t\t\t\ttitle: windowTitle,\r\n\t\t\t\tiframe: true,\r\n\t\t\t\tinnerHeight: popheight,\r\n\t\t\t\tinnerWidth: popwidth,\r\n\t\t\t\topacity: 0.3,\r\n\t\t\t\toverlayClose: bUseOverlayClose,\r\n\t\t\t\tonClosed: function(){lightbox_LostFocus();}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tlightbox_bIsOpen = true;\r\n\t}\r\n\r\n\tfunction lightbox_LostFocus(){\r\n\t\t/*\r\n\t\t Fix the Issue which is causing problem in IE when any lookup is clicked, its add extra space on every click\r\n\t\t *@author pijushb\r\n\t\t *@since 6/4/2012\r\n\t\t **/\r\n\t\tif (!ie8 && ie && document.documentElement && document.compatMode == 'CSS1Compat') {\r\n\t\t\tdocument.getElementById('lightbox_search_results_container').style.height = \"100%\"\r\n\t\t}\r\n\t\tlightbox_bIsOpen = false;\r\n\t\tdocument.getElementById('lightbox_lostfocus').style.visibility='hidden';\r\n\t\tdocument.getElementById('lightbox').style.visibility='hidden';\r\n\t\tdocument.getElementById('lightbox_lostfocus').style.display='none';\r\n\t\tdocument.getElementById('lightbox').style.display='none';\r\n\r\n\t\ttry{\r\n\t\t\tjQuery.fn.colorbox.close();\r\n\t\t\t//jQuery.fn.colorbox.remove();\r\n\t\t}catch(err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction lightbox_setFindValue(values, fields, types, closeFunction) {\r\n\t\tlightbox_LostFocus();\r\n\t\taFields = fields.split('~');\r\n\t\taValues = values.split('~');\r\n\t\taTypes = types.split('~');\r\n\t\tfor (var i=0; i= 12){\r\n iFeet += 1;\r\n iInches -= 12;\r\n }\r\n\r\n while (iInches < 0 && iFeet > 0){\r\n iFeet -= 1;\r\n iInches += 12;\r\n }\r\n\r\n if (iInches < 0){\r\n iInches = 0;\r\n }\r\n\r\n jQuery('#' + sQuestionID + '_feet').val(iFeet);\r\n jQuery('#' + sQuestionID + '_inches').val(iInches);\r\n\r\n\t\t\tiTotal = (iFeet * 12) + iInches;\r\n\t\t\tjQuery('#' + sQuestionID).val(iTotal);\r\n\t\t\tjQuery('#' + sQuestionID).change();\r\n\t\t} catch(err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\t}\r\n\r\n\t/************************************************************************************\r\n\t*** END SIZE SCRIPTS ****************************************************************\r\n\t*************************************************************************************/\r\n\r\n\t/************************************************************************************\r\n\t*** START NESTED DROPLIST SCRIPTS ***************************************************\r\n\t*************************************************************************************/\r\n\tfunction addItems(dl,prop, label) {\r\n\t\tvar items = eval(dl+'_options');\r\n\t\tif(!$('#'+dl+'_nested'+prop)) return; //the last nested droplist...\r\n\r\n\t\t$('#'+dl+'_nested'+prop).find('option').remove().end().append('');\r\n\t\t\r\n\t\tvar props = new Array();\r\n\t\tfor (var i=prop-1; i>=1; i-- )\r\n\t\t{\r\n\t\t\tprops[i-1] = $('#'+dl+'_nested'+i +' option:selected').text();\r\n\t\t}\r\n\r\n\t\tvar add = false;\r\n\t\tvar added = new Array();\r\n\t\tjQuery.each(items, function(index, item) {\r\n\t\t\t// do something with 'item'\r\n\t\t\tadd = true;\r\n\t\t\tfor (var j=0; j=0){\r\n\t\t\t\tadd = false;\r\n\t\t\t}\r\n\r\n\t\t\tif(add){\r\n\t\t\t\t$('#'+dl+'_nested'+prop).append(''); //this wasn't working for some reason.. cainb 9/21/2012\r\n\t\t\t\tadded[added.length] = item[prop];\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction fncQbFilterNested(id, num, nextLabel){\r\n\t\tvar selectedVal = $('#'+id+'_nested'+(num)).val();\r\n\r\n\t\t//blank out the main element when any droplist is changed besides the last one\r\n\t\tif($('#'+id+'_nested'+(num+1)).length>0)\r\n\t\t\t$('#'+id).val('');\r\n\t\telse {\r\n\t\t\t$('#'+id).val(selectedVal);\r\n\t\t}\r\n\t\t$('#'+id).change();\r\n\r\n\t\taddItems(id,num+1, nextLabel)\r\n\t\t\r\n\t\t$('#'+id+'_nested'+(num+1)).removeAttr('disabled');\r\n\r\n\t\tfor (var x=num+2; x<=4; x++)\r\n\t\t{\r\n\t\t\t$('#'+id+'_nested'+x).val('');\r\n\t\t\t$('#'+id+'_nested'+x).attr('disabled','disabled');\r\n\r\n\t\t}\r\n\t\r\n\t}\r\n\t/************************************************************************************\r\n\t*** END NESTED DROPLIST SCRIPTS *****************************************************\r\n\t*************************************************************************************/\r\n\r\n\t/************************************************************************************\r\n\t*** START QUICK PICK SCRIPTS ********************************************************\r\n\t*************************************************************************************/\r\n\r\n\tvar aDefaultQPCSS = new Array();\r\n\r\n\tfunction QuickPickSelectChange(vFieldName){\r\n\t\ttry{\r\n\t\t\tvar oPreview = jQuery('#' + vFieldName + '_preview');\r\n\t\t\tvar oSelect = jQuery('#' + vFieldName + ' :selected');\r\n\r\n\t\t\tif (aDefaultQPCSS[vFieldName]==undefined){\r\n\t\t\t\tvar oDefCSS = {'backgroundColor': oPreview.css('backgroundColor'), 'backgroundImage': oPreview.css('backgroundImage'), 'color': oPreview.css('color')};\r\n\t\t\t\taDefaultQPCSS[vFieldName] = oDefCSS;\r\n\t\t\t}\r\n\r\n\t\t\tif (trim(oSelect.val())==''){\r\n\t\t\t\t//No Value, reset preview\r\n\t\t\t\toPreview.css(aDefaultQPCSS[vFieldName]).html(jQuery('#' + vFieldName + '_preview_text').val());\r\n\t\t\t} else {\r\n\t\t\t\tvar oCSS = {'backgroundColor': oSelect.css('backgroundColor'), 'backgroundImage': oSelect.css('backgroundImage'), 'color': oSelect.css('color')};\r\n\t\t\t\toPreview.css(oCSS).html(oSelect.text());\r\n\t\t\t}\r\n\t\t} catch(err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction ClearQuickPick(vFieldName){\r\n\t\ttry{\r\n\t\t\tjQuery('#' + vFieldName).val('');\r\n\t\t\tjQuery('#' + vFieldName + '_preview').html(jQuery('#' + vFieldName + '_preview_text').val());\r\n\t\t} catch(err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\t}\r\n\r\n\t/************************************************************************************\r\n\t*** END QUICK PICK SCRIPTS **********************************************************\r\n\t*************************************************************************************/\r\n\r\n\t/************************************************************************************\r\n\t*** START MULTI SELECT SCRIPTS ******************************************************\r\n\t*************************************************************************************/\r\n\r\n\tfunction AddMSBOptions(vMSB, vText, vValue){\r\n\t\tvar newOpt = new Option(vText, vValue);\r\n\t\tvar iSelLength = document.getElementById(vMSB).length;\r\n\t\tdocument.getElementById(vMSB).options[iSelLength] = newOpt;\r\n\t}\r\n\r\n\tfunction DeleteMSBOptions(vMSB, vIndex){\r\n\t\tvar iSelLength = document.getElementById(vMSB).length;\r\n\t\tif (iSelLength > 0){\r\n\t\t\tdocument.getElementById(vMSB).options[vIndex] = null;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction MoveMSBOptions(vMSB, vType){\r\n\t\tvar sFromBox = '';\r\n\t\tvar sToBox = '';\r\n\t\t\r\n\t\tif (vType=='sel'){\r\n\t\t\tsFromBox = vMSB + '_avail';\r\n\t\t\tsToBox = vMSB + '_visible';\r\n\t\t} else {\r\n\t\t\tsToBox = vMSB + '_avail';\r\n\t\t\tsFromBox = vMSB + '_visible';\r\n\t\t}\r\n\r\n\t\tvar iSelLength = document.getElementById(sFromBox).length;\r\n\t\tvar aSelectedText = new Array();\r\n\t\tvar aSelectedValues = new Array();\r\n\t\tvar iSelectedCount = 0;\r\n\r\n\t\tvar iOpt;\r\n\r\n\t\t// Find the selected Options in reverse order\r\n\t\t// and delete them from the 'from' Select.\r\n\t\tfor (iOpt = iSelLength - 1; iOpt >= 0; iOpt--){\r\n\t\t\tif (document.getElementById(sFromBox).options[iOpt].selected){\r\n\t\t\t\taSelectedText[iSelectedCount] = document.getElementById(sFromBox).options[iOpt].text;\r\n\t\t\t\taSelectedValues[iSelectedCount] = document.getElementById(sFromBox).options[iOpt].value;\r\n\t\t\t\tDeleteMSBOptions(sFromBox, iOpt);\r\n\t\t\t\tiSelectedCount++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Add the selected text/values in reverse order.\r\n\t\t// This will add the Options to the 'to' Select\r\n\t\t// in the same order as they were in the 'from' Select.\r\n\t\tfor (iOpt = iSelectedCount - 1; iOpt >= 0; iOpt--){\r\n\t\t\tAddMSBOptions(sToBox, aSelectedText[iOpt], aSelectedValues[iOpt]);\r\n\t\t}\r\n\r\n\t\tMSBDuplicator(vMSB);\r\n\t}\r\n\r\n\tfunction MSBSwap(vOpt1, vOpt2){\r\n\t\tvar strHoldVal;\r\n\r\n\t\tstrHoldVal\t\t= vOpt1.value;\r\n\t\tvOpt1.value\t\t= vOpt2.value;\r\n\t\tvOpt2.value\t\t= strHoldVal;\r\n\r\n\t\tstrHoldVal\t\t= vOpt1.text;\r\n\t\tvOpt1.text\t\t= vOpt2.text;\r\n\t\tvOpt2.text\t\t= strHoldVal;\r\n\r\n\t\tstrHoldVal\t\t= vOpt1.selected;\r\n\t\tvOpt1.selected\t= vOpt2.selected;\r\n\t\tvOpt2.selected\t= strHoldVal;\r\n\t}\r\n\r\n\tfunction MoveMSBItemUp(vMSB){\r\n\t\t//find the index of the item selected\r\n\t\tvar iLen = document.getElementById(vMSB + '_visible').options.length;\r\n\t\tif (iLen==0){\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (document.getElementById(vMSB + '_visible').options[0].selected) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tfor (var iOpt = 1; iOpt < iLen; iOpt++) {\r\n\t\t\tif (document.getElementById(vMSB + '_visible').options[iOpt].selected) {\r\n\t\t\t\tMSBSwap(document.getElementById(vMSB + '_visible').options[iOpt], document.getElementById(vMSB + '_visible').options[iOpt-1]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tMSBDuplicator(vMSB);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tfunction MoveMSBItemDown(vMSB){\r\n\t\t//find the index of the item selected\r\n\t\tvar iLen = document.getElementById(vMSB + '_visible').options.length;\r\n\t\tif (iLen==0){\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tiLen -= 1;\r\n\r\n\t\tif (document.getElementById(vMSB + '_visible').options[iLen].selected){\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tfor (var iOpt = iLen - 1; iOpt >= 0; iOpt--) {\r\n\t\t\tif (document.getElementById(vMSB + '_visible').options[iOpt].selected) {\r\n\t\t\t\tMSBSwap(document.getElementById(vMSB + '_visible').options[iOpt], document.getElementById(vMSB + '_visible').options[iOpt+1]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tMSBDuplicator(vMSB);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tfunction MSBDuplicator(vMSB){\r\n\t\tvar bFirst = true;\r\n\t\tvar bUsePos = document.getElementById(vMSB + '_use_pos').value;\r\n\r\n\t\tvar iLen = document.getElementById(vMSB + '_visible').length;\r\n\t\tvar iOpt = 0;\r\n\r\n\t\tvar sPosField = document.getElementById(vMSB + '_pos_field').value;\r\n\t\tvar sSpacer = document.getElementById(vMSB + '_spacer').value;\r\n\t\tvar sValue = '';\r\n\r\n\t\tfor (iOpt = 0; iOpt < iLen; iOpt++) {\r\n\t\t\ttry{\r\n\t\t\t\tif (!bFirst) {\r\n\t\t\t\t\tsValue += sSpacer\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbFirst = false;\r\n\t\t\t\tsValue += document.getElementById(vMSB + '_visible').options[iOpt].value;\r\n\r\n\t\t\t\tif (bUsePos=='true'){\r\n\t\t\t\t\tsValue += '|' + sPosField + '=' + iOpt;\r\n\t\t\t\t}\r\n\t\t\t} catch (err){\r\n\t\t\t\t//alert(err.message);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttry{\r\n\t\t\tdocument.getElementById(vMSB).value = sValue;\r\n\t\t} catch (err){\r\n\t\t\talert(err.message + '\\n\\n' + 'document.getElementById(\\'' + vMSB + '\\').value = ' + sValue);\r\n\t\t}\r\n\r\n\t\tif (document.getElementById(vMSB + '_counter_display_type').value!='0'){\r\n\t\t\ttry{\r\n\t\t\t\tvar sAvailCount = document.getElementById(vMSB + '_counter_text').value.replace(//gi, document.getElementById(vMSB + '_avail').length);\r\n\t\t\t\tvar sSelCount = document.getElementById(vMSB + '_counter_text').value.replace(//gi, document.getElementById(vMSB + '_visible').length);\r\n\r\n\t\t\t\tdocument.getElementById(vMSB + '_avail_count').innerHTML = sAvailCount;\r\n\t\t\t\tdocument.getElementById(vMSB + '_sel_count').innerHTML = sSelCount;\r\n\t\t\t\t\r\n\t\t\t} catch (err){\r\n\t\t\t\t//alert(err.message);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/************************************************************************************\r\n\t*** END MULTI SELECT SCRIPTS ********************************************************\r\n\t*************************************************************************************/\r\n\r\n\t/************************************************************************************\r\n\t*** START MULTI FILE SCRIPTS *******************************************************\r\n\t*************************************************************************************/\r\n\t\tfunction multifileHandleUploadData(sQuestionKey, aPostedKeys, aFilenames) {\r\n\t\t\tvar $container = $('#' + sQuestionKey + '_iframe').parent();\r\n\t\t\tvar $names = $container.find('input[id$=names]');\r\n\t\t\tvar $keys = $container.find('input').not($names);\r\n\r\n\t\t\t$keys.val(aPostedKeys.join(';'))\r\n\t\t\t$names.val(aFilenames.join(', '))\r\n\t\t}\r\n\r\n\t\tfunction multifileAdjustIFrameHeight(sQuestionKey) {\r\n\t\t\tvar $frame = $('#' + sQuestionKey + '_iframe');\r\n\t\t\tvar oFrameDoc = $frame[0].contentDocument;\r\n\t\t\tvar iHeight = $(oFrameDoc).find('body').height();\r\n\r\n\t\t\t$frame.height(iHeight);\r\n\t\t}\r\n\t/************************************************************************************\r\n\t*** END MULTI FILE SCRIPTS ********************************************************\r\n\t*************************************************************************************/\r\n\r\n\t/************************************************************************************\r\n\t*** START MULTI INPUT SCRIPTS *******************************************************\r\n\t*************************************************************************************/\r\n\r\n\t\tfunction MIBuildAnswer(vMI, event){\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tvar aMIFields = document.getElementById(vMI + '_fields').value.split('|');\r\n\t\t\tvar strAString = document.getElementById(vMI + '_answer_string').value;\r\n\t\t\tvar strDString = document.getElementById(vMI + '_display_string').value;\r\n\t\t\tvar bUseXML = document.getElementById(vMI + '_use_xml').value;\r\n\t\t\tvar bDistRecs = document.getElementById(vMI + '_distinct_recs').value;\r\n\t\t\tvar strDist = document.getElementById(vMI + '_distinct_field').value;\r\n\t\t\tvar oDistInput = document.getElementById(vMI + '_distinct_input');\r\n\t\t\tvar strMIValID = document.getElementById(vMI + '_validation_key').value;\r\n\t\t\tvar iEditMode = document.getElementById(vMI + '_edit_mode').value;\r\n\t\t\tvar oSelect = document.getElementById(vMI + '_visible');\r\n\r\n\t\t\tvar strFieldType = '';\r\n\t\t\tvar strFieldValue = '';\r\n\t\t\toDistInput.value = '1';\r\n\t\t\t\r\n\t\t\tif ( (bDistRecs=='true') && (strDist!='') ) {\r\n\t\t\t\t\r\n\t\t\t\t//Loop the currently added items\r\n\t\t\t\tfor ( var iOpts = 0, goTo = oSelect.options.length; iOpts < goTo; iOpts++ ) {\r\n\t\t\t\t\tsAddedItem = oSelect.options[iOpts].value;\r\n\t\t\t\t\taAddedItemValues = sAddedItem.split('~');\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ( aAddedItemValues[0] === document.getElementById(vMI + '_' + strDist).value ){\r\n\t\t\t\t\t\tif ( (iEditMode=='1') && (oSelect.options[iOpts].selected==true) ) {\r\n\t\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\toDistInput.value = '0';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (document.getElementById(vMI + '_limit_chars').value=='true'){\r\n\t\t\t\tMICalcChars(vMI);\r\n\t\t\t}\r\n\r\n\t\t\tif (eval('formValidation' + strMIValID).check()){\r\n\r\n\t\t\t\tfor (iF = 0; iF < aMIFields.length; iF++){\r\n\t\t\t\t\tstrFieldType = '';\r\n\t\t\t\t\tstrFieldValue = '';\r\n\r\n\t\t\t\t\tstrFieldType = document.getElementById(vMI + '_' + aMIFields[iF] + '_type').value.toLowerCase();\r\n\t\t\t\t\t\r\n\t\t\t\t\tswitch (strFieldType){\r\n\t\t\t\t\t\tcase 'radio': case 'radioinline':\r\n\t\t\t\t\t\t\tstrFieldValue = MIGetCheckedValue(vMI + '_' + aMIFields[iF], document.getElementById(vMI + '_form_name').value);\r\n\t\t\t\t\t\t\tMIResetCheckedValue(vMI + '_' + aMIFields[iF], document.getElementById(vMI + '_form_name').value);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'checkbox':\r\n\t\t\t\t\t\t\tfor (iCheck = 0; iCheck < document.getElementsByName(vMI + '_' + aMIFields[iF]).length; iCheck++){\r\n\t\t\t\t\t\t\t\tif (document.getElementById(vMI + '_' + aMIFields[iF] + '_' + iCheck).checked==true){\r\n\t\t\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + aMIFields[iF] + '_' + iCheck).checked==false;\r\n\r\n\t\t\t\t\t\t\t\t\tif (strFieldValue==''){\r\n\t\t\t\t\t\t\t\t\t\tstrFieldValue = strFieldValue + document.getElementById(vMI + '_' + aMIFields[iF] + '_' + iCheck).value;\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tstrFieldValue = strFieldValue + ', ' + document.getElementById(vMI + '_' + aMIFields[iF] + '_' + iCheck).value;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'select': case 'select-one':\r\n\t\t\t\t\t\t\tstrFieldValue = document.getElementById(vMI + '_' + aMIFields[iF]).value;\r\n\r\n\t\t\t\t\t\t\tif (document.getElementById(vMI + '_' + aMIFields[iF]).options.length > 0){\r\n\t\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + aMIFields[iF]).options[0].selected = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tstrFieldValue = document.getElementById(vMI + '_' + aMIFields[iF]).value;\r\n\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + aMIFields[iF]).value = '';\r\n\t\t\t\t\t\t\ttry{\r\n\t\t\t\t\t\t\t\t// This is for when a lightbox hidden field is being used\r\n\t\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + aMIFields[iF] + '_disp').value = '';\r\n\t\t\t\t\t\t\t} catch (err){\r\n\t\t\t\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\tif (aMIFields[iF]==document.getElementById(vMI + '_field_to_limit').value){\r\n\t\t\t\t\t\tvar iCurLen = parseInt(document.getElementById(vMI + '_chars_submitted').value);\r\n\t\t\t\t\t\tdocument.getElementById(vMI + '_chars_submitted').value = iCurLen + strFieldValue.length;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t*/\r\n\r\n\t\t\t\t\tif (bUseXML=='true'){\r\n\t\t\t\t\t\tstrAString = strAString + '<' + aMIFields[iF] + '>' + strFieldValue + '';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstrAString = strAString.replace(new RegExp('<=' + aMIFields[iF] + '=>', 'g'), strFieldValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstrDString = strDString.replace(new RegExp('<=' + aMIFields[iF] + '=>', 'g'), strFieldValue);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (iEditMode=='1'){\r\n\t\t\t\t\tMIEditOption(vMI + '_visible', strDString, strAString);\r\n\t\t\t\t\tdocument.getElementById(vMI + '_edit_mode').value = '0';\r\n\t\t\t\t\tdocument.getElementById(vMI + '_visible').disabled = false;\r\n\r\n\t\t\t\t\tMIToggleLinkDisplay(vMI, true);\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tMIAddOpt(vMI + '_visible', strAString, strDString);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tMIDuplicate(vMI)\r\n\t\t\t}\r\n\r\n\t\t\tMICheckEntryLimit(vMI, false);\r\n\t\t\t//alert(document.getElementById(vMI + '_visible').options.length);\r\n\t\t}\r\n\r\n\t\tfunction MIAddOpt(vSelect, vOptionValue, vOptionDisp){\r\n\t\t\toSelect = document.getElementById(vSelect)\r\n\t\t\toSelect[oSelect.options.length] = new Option(vOptionDisp, vOptionValue);\r\n\t\t}\r\n\r\n\t\tfunction MIGetSelectedIndex(vSelectBox) {\r\n\t\t\t//find the index of the item selected\r\n\t\t\tvar iLen = vSelectBox.options.length;\r\n\t\t\tfor(var iOpt = 0; iOpt < iLen; iOpt++) {\r\n\t\t\t\tif (vSelectBox.options[iOpt].selected) {\r\n\t\t\t\t\treturn iOpt;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Return value of checked element in a group of radio buttons\r\n\t\tfunction MIGetCheckedValue(vRadioName, vFormName) {\r\n\t\t\tvar oForm;\r\n\t\t\tfor (iForm = 0; iForm < document.forms.length; iForm++){\r\n\t\t\t\tif (document.forms[iForm].id==vFormName){\r\n\t\t\t\t\toForm = document.forms[iForm]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (oForm!=undefined){\r\n\t\t\t\tvar oRadioCheck = oForm.elements[vRadioName];\r\n\t\t\t\tif(!oRadioCheck) {\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar iRadioLength = oRadioCheck.length;\r\n\t\t\t\r\n\t\t\t\tif(iRadioLength == undefined){\r\n\t\t\t\t\tif(oRadioCheck.checked) {\r\n\t\t\t\t\t\treturn oRadioCheck.value;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor(var iCheck = 0; iCheck < iRadioLength; iCheck++) {\r\n\t\t\t\t\t\tif(oRadioCheck[iCheck].checked) {\r\n\t\t\t\t\t\t\treturn oRadioCheck[iCheck].value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Check the first radio button in a group of radio buttons.\r\n\t\tfunction MIResetCheckedValue(vRadioName, vFormName) {\r\n\t\t\tvar oForm;\r\n\t\t\tfor (iForm = 0; iForm < document.forms.length; iForm++){\r\n\t\t\t\tif (document.forms[iForm].id==vFormName){\r\n\t\t\t\t\toForm = document.forms[iForm]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (oForm!=undefined){\r\n\t\t\t\tvar oRadioCheck = oForm.elements[vRadioName];\r\n\t\t\t\tif(!oRadioCheck) {\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar iRadioLength = oRadioCheck.length;\r\n\t\t\t\tif(iRadioLength == undefined){\r\n\t\t\t\t\toRadioCheck.checked = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\toRadioCheck[0].checked = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// Check a radio button given a value\r\n\t\tfunction MISetCheckedValue(vRadioName, vFormName, vRadioValue) {\r\n\t\t\tvar oForm;\r\n\t\t\tfor (iForm = 0; iForm < document.forms.length; iForm++){\r\n\t\t\t\tif (document.forms[iForm].id==vFormName){\r\n\t\t\t\t\toForm = document.forms[iForm]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (oForm!=undefined){\r\n\t\t\t\tvar oRadioCheck = oForm.elements[vRadioName];\r\n\t\t\t\tif(!oRadioCheck) {\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar iRadioLength = oRadioCheck.length;\r\n\t\t\t\tif(iRadioLength == undefined) {\r\n\t\t\t\t\tif(oRadioCheck.checked) {\r\n\t\t\t\t\t\treturn oRadioCheck.value;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor(var iCheck = 0; iCheck < iRadioLength; iCheck++) {\r\n\t\t\t\t\t\tif(oRadioCheck[iCheck].value == vRadioValue) {\r\n\t\t\t\t\t\t\toRadioCheck[iCheck].checked = true;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Swap two option in a select box\r\n\t\tfunction MISwap(vOpt1, vOpt2){\r\n\t\t\tvar strHoldVal;\r\n\r\n\t\t\tstrHoldVal\t\t= vOpt1.value;\r\n\t\t\tvOpt1.value\t\t= vOpt2.value;\r\n\t\t\tvOpt2.value\t\t= strHoldVal;\r\n\r\n\t\t\tstrHoldVal\t\t= vOpt1.text;\r\n\t\t\tvOpt1.text\t\t= vOpt2.text;\r\n\t\t\tvOpt2.text\t\t= strHoldVal;\r\n\r\n\t\t\tstrHoldVal\t\t= vOpt1.selected;\r\n\t\t\tvOpt1.selected\t= vOpt2.selected;\r\n\t\t\tvOpt2.selected\t= strHoldVal;\r\n\t\t}\r\n\r\n\t\t// Move option(s) up in select box\r\n\t\tfunction MIBumpUp(vField) {\r\n\t\t\t//find the index of the item selected\r\n\t\t\tvar iLen = document.getElementById(vField + '_visible').options.length;\r\n\t\t\tif(iLen==0) return false;\r\n\t\t\tif (document.getElementById(vField + '_visible').options[0].selected) { return true; }\r\n\t\t\tfor(var iOpt = 1; iOpt < iLen; iOpt++) {\r\n\t\t\t\tif (document.getElementById(vField + '_visible').options[iOpt].selected) {\r\n\t\t\t\t\tMISwap(document.getElementById(vField + '_visible').options[iOpt], document.getElementById(vField + '_visible').options[iOpt-1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tMIDuplicate(vField);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Move option(s) down in select box\r\n\t\tfunction MIBumpDown(vField) {\r\n\t\t\t//find the index of the item selected\r\n\t\t\tvar iLen = document.getElementById(vField + '_visible').options.length;\r\n\t\t\tif(iLen==0) return false;\r\n\t\t\tiLen -= 1;\r\n\t\t\tif (document.getElementById(vField + '_visible').options[iLen].selected) { return true; }\r\n\r\n\t\t\tfor(var iOpt = iLen; iOpt >= 0; iOpt--) {\r\n\t\t\t\tif (document.getElementById(vField + '_visible').options[iOpt].selected) {\r\n\t\t\t\t\tMISwap(document.getElementById(vField + '_visible').options[iOpt], document.getElementById(vField + '_visible').options[iOpt+1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tMIDuplicate(vField);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Edit Option in Select\r\n\t\tfunction MIEdit(vMI, event){\r\n\t\t\tvar strSelectedAnswer = '';\r\n\t\t\tvar iOpt, iSel;\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tiSel = 0;\r\n\t\t\tfor(iOpt = 0; iOpt < document.getElementById(vMI + '_visible').options.length; iOpt++) {\r\n\t\t\t\tif (document.getElementById(vMI + '_visible').options[iOpt].selected) {\r\n\t\t\t\t\tstrSelectedAnswer = document.getElementById(vMI + '_visible').options[iOpt].value;\r\n\t\t\t\t\tiSel++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (iSel != 1) {\r\n\t\t\t\tif (iSel == 0) {\r\n\t\t\t\t\talert(document.getElementById(vMI + '_please_select').value);\r\n\t\t\t\t} else {\r\n\t\t\t\t\talert(document.getElementById(vMI + '_multiple_select').value);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdocument.getElementById(vMI + '_edit_mode').value = '1';\r\n\t\t\t\tvar strAString = document.getElementById(vMI + '_answer_string').value;\r\n\t\t\t\tvar strDString = document.getElementById(vMI + '_display_string').value;\r\n\t\t\t\tvar bUseXML = document.getElementById(vMI + '_use_xml').value;\r\n\t\t\t\tvar strSpacer = document.getElementById(vMI + '_entry_delimeter').value;\r\n\r\n\t\t\t\tdocument.getElementById(vMI + '_visible').disabled = true;\r\n\r\n\t\t\t\tMIToggleLinkDisplay(vMI, false)\r\n\r\n\t\t\t\tif (bUseXML=='true'){\r\n\t\t\t\t\t//I kinda need to write this still...\r\n\t\t\t\t\tvar oEntryXML = createXMLDoc('' + strSelectedAnswer + '');\r\n\t\t\t\t\tvar aFields = document.getElementById(vMI + '_fields').value.split('|');\r\n\r\n\t\t\t\t\tfor (var iField = 0; iField < aFields.length; iField++){\r\n\t\t\t\t\t\tstrValue = getNodeValue(oEntryXML, aFields[iField], 0);\r\n\t\t\t\t\t\tif (trim(strValue)!=''){\r\n\t\t\t\t\t\t\tif ((document.getElementById(vMI + '_' + aFields[iField] + '_type').value=='radio')||(document.getElementById(vMI + '_' + aFields[iField] + '_type').value=='radioinline')) {\r\n\t\t\t\t\t\t\t\tMISetCheckedValue(vMI + '_' + aFields[iField], document.getElementById(vMI + '_form_name').value, strValue);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + aFields[iField]).value = strValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar aDelimeters = strAString.split(/<=[0-9a-z_-]*=>/gi);\r\n\r\n\t\t\t\t\t// Loop through delimeters\r\n\t\t\t\t\tif(aDelimeters.length != 0) {\r\n\t\t\t\t\t\tfor (iDelim = 0; iDelim < aDelimeters.length; iDelim++) {\r\n\r\n\t\t\t\t\t\t\t// Break the answer string in half on the current delimeter and replace '<=' and '=>' with '' to pull out a field\r\n\t\t\t\t\t\t\tstrKey = MIDivide(strAString, aDelimeters[iDelim])[0].replace(/<=|=>/gi, '');\r\n\r\n\t\t\t\t\t\t\t// Do the same for the currently selected answer\r\n\t\t\t\t\t\t\tstrValue = MIDivide(strSelectedAnswer, aDelimeters[iDelim])[0];\r\n\r\n\t\t\t\t\t\t\t// set the value of the form field to the currect value from the selected answer\r\n\t\t\t\t\t\t\tif ((strKey!='')&&(strValue!='')) {\r\n\t\t\t\t\t\t\t\tif ((document.getElementById(vMI + '_' + strKey + '_type').value=='radio')||(document.getElementById(vMI + '_' + strKey + '_type').value=='radioinline')) {\r\n\t\t\t\t\t\t\t\t\tMISetCheckedValue(vMI + '_' + strKey, document.getElementById(vMI + '_form_name').value, strValue);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t// 11/13/2009 SCM: Commented out the replace because I can't figure out why this is needed at all. It was causing problems.\r\n\t\t\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + strKey).value = strValue; //.replace(new RegExp(strSpacer, 'g'), '\\n');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tstrAString = MIDivide(strAString, aDelimeters[iDelim])[1];\r\n\t\t\t\t\t\t\tstrSelectedAnswer = MIDivide(strSelectedAnswer, aDelimeters[iDelim])[1];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstrKey = strAString.replace(/<=|=>/gi,'');\r\n\t\t\t\t\tstrValue = strSelectedAnswer;\r\n\r\n\t\t\t\t\tif ((strKey==document.getElementById(vMI + '_field_to_limit').value)&&(document.getElementById(vMI + '_limit_chars').value=='true')){\r\n\t\t\t\t\t\t//var iCurLen = parseInt(document.getElementById(vMI + '_chars_submitted').value);\r\n\t\t\t\t\t\t//document.getElementById(vMI + '_chars_submitted').value = iCurLen - strValue.length;\r\n\t\t\t\t\t\tMICalcChars(vMI);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ((strKey!='')&&(strValue!='')) {\r\n\t\t\t\t\t\tif ((document.getElementById(vMI + '_' + strKey + '_type').value=='radio')||(document.getElementById(vMI + '_' + strKey + '_type').value=='radioinline')) {\r\n\t\t\t\t\t\t\tMISetCheckedValue(vMI + '_' + strKey, document.getElementById(vMI + '_form_name').value, strValue);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// 11/13/2009 SCM: Commented out the replace because I can't figure out why this is needed at all. It was causing problems.\r\n\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + strKey).value = strValue; //.replace(new RegExp(strSpacer, 'g'), '\\n');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tMIDuplicate(vMI)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction MIEditOption(vSel, vText, vValue){\r\n\t\t\tvar iLen = document.getElementById(vSel).options.length;\r\n\t\t\tif(iLen==0) return;\r\n\t\t\tfor(var iOpt = 0; iOpt < iLen; iOpt++) {\r\n\t\t\t\tif (document.getElementById(vSel).options[iOpt].selected) {\r\n\t\t\t\t\tdocument.getElementById(vSel).options[iOpt].value = vValue;\r\n\t\t\t\t\tdocument.getElementById(vSel).options[iOpt].text = vText;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Clone Option in Select\r\n\t\tfunction MIClone(vMI, event){\r\n\t\t\tvar iOpt, iSel;\r\n\t\t\tevent.preventDefault();\r\n\t\t\t\r\n\t\t\tiSel = 0;\r\n\t\t\tfor(iOpt = 0; iOpt < document.getElementById(vMI + '_visible').options.length; iOpt++) {\r\n\t\t\t\tif (document.getElementById(vMI + '_visible').options[iOpt].selected) {\r\n\t\t\t\t\tiSel++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (iSel == 0) {\r\n\t\t\t\talert(document.getElementById(vMI + '_please_select').value);\r\n\t\t\t} else {\r\n\t\t\t\tvar iClone = 0;\r\n\t\t\t\tif (confirm('Are you sure you wish to clone the selected values?')){\r\n\t\t\t\t\tfor (iClone = 0; iClone < document.getElementById(vMI + '_visible').options.length; iClone++) {\r\n\t\t\t\t\t\tif (document.getElementById(vMI + '_visible').options[iClone].selected) {\r\n\t\t\t\t\t\t\tif (document.getElementById(vMI + '_limit_chars').value=='true'){\r\n\t\t\t\t\t\t\t\tvar strSelectedAnswer = document.getElementById(vMI + '_visible').options[iClone].value;\r\n\t\t\t\t\t\t\t\tvar strAString = document.getElementById(vMI + '_answer_string').value;\r\n\t\t\t\t\t\t\t\tvar aDelimeters = strAString.split(/<=[0-9a-z_-]*=>/gi);\r\n\t\t\t\t\t\t\t\tvar strKey = '';\r\n\t\t\t\t\t\t\t\tvar strValue = '';\r\n\r\n\t\t\t\t\t\t\t\t// Loop through delimeters\r\n\t\t\t\t\t\t\t\tif(aDelimeters.length != 0) {\r\n\t\t\t\t\t\t\t\t\tfor (var iDelim = 0; iDelim < aDelimeters.length; iDelim++) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Break the answer string in half on the current delimeter and replace '<=' and '=>' with '' to pull out a field\r\n\t\t\t\t\t\t\t\t\t\tstrKey = MIDivide(strAString, aDelimeters[iDelim])[0].replace(/<=|=>/gi,'');\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Do the same for the currently selected answer\r\n\t\t\t\t\t\t\t\t\t\tstrValue = MIDivide(strSelectedAnswer, aDelimeters[iDelim])[0];\r\n\r\n\t\t\t\t\t\t\t\t\t\tstrAString = MIDivide(strAString, aDelimeters[iDelim])[1];\r\n\t\t\t\t\t\t\t\t\t\tstrSelectedAnswer = MIDivide(strSelectedAnswer, aDelimeters[iDelim])[1];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tstrKey = strAString.replace(/<=|=>/gi,'');\r\n\t\t\t\t\t\t\t\tstrValue = strSelectedAnswer;\r\n\r\n\t\t\t\t\t\t\t\tif ((strKey==document.getElementById(vMI + '_field_to_limit').value)){\r\n\t\t\t\t\t\t\t\t\tvar iRemain = parseInt(document.getElementById(vMI + '_chars_remaining').value);\r\n\t\t\t\t\t\t\t\t\tif (strValue.length < iRemain){\r\n\t\t\t\t\t\t\t\t\t\t//var iCurLen = parseInt(document.getElementById(vMI + '_chars_submitted').value);\r\n\t\t\t\t\t\t\t\t\t\t//document.getElementById(vMI + '_chars_submitted').value = iCurLen + strValue.length;\r\n\r\n\t\t\t\t\t\t\t\t\t\tMIAddOpt(vMI + '_visible', document.getElementById(vMI + '_visible').options[iClone].value, document.getElementById(vMI + '_visible').options[iClone].text);\r\n\r\n\t\t\t\t\t\t\t\t\t\tMICalcChars(vMI);\r\n\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\talert('The cloning process has halted because there are not enough remaining characters to continue.');\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tMIAddOpt(vMI + '_visible', document.getElementById(vMI + '_visible').options[iClone].value, document.getElementById(vMI + '_visible').options[iClone].text);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tMIDuplicate(vMI)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tMICheckEntryLimit(vMI, false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Delete Option from Select\r\n\t\tfunction MIRemoveSelectedAnswers(vMI, event){\r\n\t\t\tevent.preventDefault();\r\n\t\t\t\r\n\t\t\tvar iEditMode = document.getElementById(vMI + '_edit_mode').value;\r\n\t\t\tvar aMIFields = document.getElementById(vMI + '_fields').value.split('|');\r\n\r\n\t\t\tif (iEditMode=='1'){\r\n\t\t\t\tdocument.getElementById(vMI + '_edit_mode').value = '0';\r\n\t\t\t\tdocument.getElementById(vMI + '_visible').disabled = false;\r\n\t\t\t\tMIToggleLinkDisplay(vMI, true);\r\n\r\n\t\t\t\tvar strFieldType = '';\r\n\r\n\t\t\t\tfor (iF = 0; iF < aMIFields.length; iF++){\r\n\t\t\t\t\tstrFieldType = '';\r\n\r\n\t\t\t\t\tstrFieldType = document.getElementById(vMI + '_' + aMIFields[iF] + '_type').value.toLowerCase();\r\n\t\t\t\t\t\r\n\t\t\t\t\tswitch (strFieldType){\r\n\t\t\t\t\t\tcase 'radio': case 'radioinline':\r\n\t\t\t\t\t\t\tMIResetCheckedValue(vMI + '_' + aMIFields[iF], document.getElementById(vMI + '_form_name').value);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'checkbox':\r\n\t\t\t\t\t\t\tfor (iCheck = 0; iCheck < document.getElementsByName(vMI + '_' + aMIFields[iF]).length; iCheck++){\r\n\t\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + aMIFields[iF]).options[iCheck].checked = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'select': case 'select-one':\r\n\t\t\t\t\t\t\tif (document.getElementById(vMI + '_' + aMIFields[iF]).options.length > 0){\r\n\t\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + aMIFields[iF]).options[0].selected = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tdocument.getElementById(vMI + '_' + aMIFields[iF]).value = '';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar iRemove = 0;\r\n\t\t\t\tif (confirm('Are you sure you wish to remove the selected values?')){\r\n\t\t\t\t\tfor (iRemove = document.getElementById(vMI + '_visible').options.length - 1; iRemove >= 0 ; iRemove--) {\r\n\t\t\t\t\t\tif (document.getElementById(vMI + '_visible').options[iRemove].selected) {\r\n\r\n\t\t\t\t\t\t\tif (document.getElementById(vMI + '_limit_chars').value=='true'){\r\n\t\t\t\t\t\t\t\tvar strSelectedAnswer = document.getElementById(vMI + '_visible').options[iRemove].value;\r\n\t\t\t\t\t\t\t\tvar strAString = document.getElementById(vMI + '_answer_string').value;\r\n\t\t\t\t\t\t\t\tvar aDelimeters = strAString.split(/<=[0-9a-z_-]*=>/gi);\r\n\t\t\t\t\t\t\t\tvar strKey = '';\r\n\t\t\t\t\t\t\t\tvar strValue = '';\r\n\r\n\t\t\t\t\t\t\t\t// Loop through delimeters\r\n\t\t\t\t\t\t\t\tif(aDelimeters.length != 0) {\r\n\t\t\t\t\t\t\t\t\tfor (var iDelim = 0; iDelim < aDelimeters.length; iDelim++) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Break the answer string in half on the current delimeter and replace '<=' and '=>' with '' to pull out a field\r\n\t\t\t\t\t\t\t\t\t\tstrKey = MIDivide(strAString, aDelimeters[iDelim])[0].replace(/<=|=>/gi,'');\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Do the same for the currently selected answer\r\n\t\t\t\t\t\t\t\t\t\tstrValue = MIDivide(strSelectedAnswer, aDelimeters[iDelim])[0];\r\n\r\n\t\t\t\t\t\t\t\t\t\tstrAString = MIDivide(strAString, aDelimeters[iDelim])[1];\r\n\t\t\t\t\t\t\t\t\t\tstrSelectedAnswer = MIDivide(strSelectedAnswer, aDelimeters[iDelim])[1];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tstrKey = strAString.replace(/<=|=>/gi,'');\r\n\t\t\t\t\t\t\t\tstrValue = strSelectedAnswer;\r\n\r\n\t\t\t\t\t\t\t\tif (strKey==document.getElementById(vMI + '_field_to_limit').value){\r\n\t\t\t\t\t\t\t\t\tvar iRemain = parseInt(document.getElementById(vMI + '_chars_remaining').value);\r\n\t\t\t\t\t\t\t\t\t//var iCurLen = parseInt(document.getElementById(vMI + '_chars_submitted').value);\r\n\t\t\t\t\t\t\t\t\t//document.getElementById(vMI + '_chars_submitted').value = iCurLen - strValue.length;\r\n\r\n\t\t\t\t\t\t\t\t\tMICalcChars(vMI);\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tMIDeleteOption(vMI + '_visible', iRemove);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tMIDuplicate(vMI)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tMICheckEntryLimit(vMI, false);\r\n\r\n\t\t\tvar strJSFunc = document.getElementById(vMI + '_javascript_func').value;\r\n\r\n\t\t\tif (strJSFunc!=''){\r\n\t\t\t\twindow.setTimeout(strJSFunc, 1);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tfunction MIRemoveAllAnswers(vMI, vAlert){\r\n\t\t\tvar bRemove = false;\r\n\t\t\tif (document.getElementById(vMI + '_visible').options.length > 0){\r\n\t\t\t\tif (vAlert==false){\r\n\t\t\t\t\tbRemove = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbRemove = confirm('Are you sure you wish to remove ALL entries?');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (bRemove==true){\r\n\t\t\t\t\tdocument.getElementById(vMI).value = '';\r\n\t\t\t\t\tdocument.getElementById(vMI + '_visible').options.length = 0;\r\n\t\t\t\t\tMIDuplicate(vMI);\r\n\t\t\t\t\tMIResetCalc(vMI);\r\n\t\t\t\t\tMICheckEntryLimit(vMI, false);\r\n\r\n\t\t\t\t\tvar strJSFunc = document.getElementById(vMI + '_javascript_func').value;\r\n\r\n\t\t\t\t\tif (strJSFunc!=''){\r\n\t\t\t\t\t\twindow.setTimeout(strJSFunc, 1);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction MIDeleteOption(vSel, vIndex){\r\n\t\t\tvar selLength = document.getElementById(vSel).length;\r\n\t\t\tif(selLength > 0) {\r\n\t\t\t\tdocument.getElementById(vSel).options[vIndex] = null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction MIDivide(vString, vDivider) {\r\n\t\t\tvar strReplace = genID();\r\n\t\t\tvString = vString.replace(vDivider, strReplace);\r\n\t\t\treturn Array(vString.split(strReplace)[0], vString.split(strReplace)[1]);\r\n\t\t}\r\n\r\n\t\t// Copy the values from a select box to its corresponding hidden field\r\n\t\tfunction MIDuplicate(vMI){\r\n\t\t\tvar strJSFunc = document.getElementById(vMI + '_javascript_func').value;\r\n\t\t\tvar iLen = document.getElementById(vMI + '_visible').length;\r\n\t\t\tvar bUseXML = document.getElementById(vMI + '_use_xml').value;\r\n\t\t\tvar bUsePos = document.getElementById(vMI + '_use_pos').value;\r\n\t\t\tvar strPos = document.getElementById(vMI + '_pos_field').value;\r\n\r\n\t\t\tvar iOpt;\r\n\t\t\tvar strValue = \"\";\r\n\t\t\tvar bFirst = true;\r\n\r\n\t\t\tif (bUseXML=='true'){\r\n\t\t\t\tvar strDocumentElement = document.getElementById(vMI + '_line_delimeter').value;\r\n\t\t\t\tvar strParentNode = document.getElementById(vMI + '_entry_delimeter').value;\r\n\t\t\t\tvar strTempXML = '';\r\n\t\t\t\tvar strXML = '<' + strDocumentElement + ' xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">';\r\n\r\n\t\t\t\tfor(iOpt = 0; iOpt < iLen; iOpt++) {\r\n\t\t\t\t\tstrTempXML = strXML;\r\n\t\t\t\t\tstrXML = strTempXML + '<' + strParentNode + '>' + document.getElementById(vMI + '_visible').options[iOpt].value + '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstrTempXML = strXML;\r\n\t\t\t\tstrXML = strTempXML + '';\r\n\r\n\t\t\t\tstrValue = strXML;\r\n\t\t\t} else {\r\n\t\t\t\tvar strLineSpacer = document.getElementById(vMI + '_line_delimeter').value;\r\n\t\t\t\tvar strEntrySpacer = document.getElementById(vMI + '_entry_delimeter').value;\r\n\r\n\t\t\t\tfor(iOpt = 0; iOpt < iLen; iOpt++) {\r\n\t\t\t\t\tif (!bFirst){\r\n\t\t\t\t\t\tstrValue = strValue + strEntrySpacer\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbFirst = false;\r\n\t\t\t\t\tstrValue = strValue + document.getElementById(vMI + '_visible').options[iOpt].value;\r\n\r\n\t\t\t\t\tif (bUsePos=='true'){\r\n\t\t\t\t\t\tstrValue = strValue + '|' + strPos + '=' + iOpt;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tdocument.getElementById(vMI).value = strValue;\r\n\r\n\t\t\tif (strJSFunc!=''){\r\n\t\t\t\twindow.setTimeout(strJSFunc, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction MICharacterLimit(vMI){\r\n\t\t\tvar strField = document.getElementById(vMI + '_field_to_limit').value;\r\n\t\t\tvar strLabel = document.getElementById(vMI + '_limit_label');\r\n\r\n\t\t\tvar iLimit = parseInt(document.getElementById(vMI + '_char_limit').value);\r\n\t\t\tvar iSubmitted = 0; //parseInt(document.getElementById(vMI + '_chars_submitted').value);\r\n\t\t\tvar iRemaining = parseInt(document.getElementById(vMI + '_chars_remaining').value);\r\n\t\t\tvar iCurLen = document.getElementById(vMI + '_' + strField).value.length + 1;\r\n\t\t\tvar iCalc = 0;\r\n\r\n\t\t\tif (iRemaining > 0){\r\n\t\t\t\tiCalc = (iLimit - iSubmitted) - iCurLen;\r\n\r\n\t\t\t\tstrLabel.innerHTML = iCalc + ' of ' + iLimit + ' remaining.';\r\n\t\t\t\tdocument.getElementById(vMI + '_chars_remaining').value = iCalc;\r\n\t\t\t\treturn true;\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction MICalcChars(vMI){\r\n\t\t\tvar strField = document.getElementById(vMI + '_field_to_limit').value;\r\n\t\t\tvar strLabel = document.getElementById(vMI + '_limit_label');\r\n\r\n\t\t\tvar iLimit\t\t= parseInt(document.getElementById(vMI + '_char_limit').value);\r\n\t\t\tvar iSubmitted\t= 0; //parseInt(document.getElementById(vMI + '_chars_submitted').value);\r\n\t\t\tvar iCalc\t\t= 0;\r\n\r\n\t\t\t//If the field isn't prefixed with the multi input name, add it\r\n\t\t\tif(strField.indexOf(vMI) === -1){\r\n\t\t\t\tvar iCurLen = document.getElementById(vMI + '_' + strField).value.length;\r\n\t\t\t\r\n\t\t\t//Use the field provided if the multi input name is included (lets you use custom field names)\r\n\t\t\t}else{\r\n\t\t\t\tvar iCurLen = document.getElementById(strField).value.length;\r\n\t\t\t}\r\n\r\n\t\t\tiCalc = (iLimit - iSubmitted) - iCurLen;\r\n\r\n\t\t\tstrLabel.innerHTML = iCalc + ' of ' + iLimit + ' remaining.';\r\n\t\t\tdocument.getElementById(vMI + '_chars_remaining').value = iCalc;\r\n\t\t}\r\n\r\n\t\tfunction MIResetCalc(vMI){\r\n\t\t\tvar strField = document.getElementById(vMI + '_field_to_limit').value;\r\n\t\t\tvar strLabel = document.getElementById(vMI + '_limit_label');\r\n\t\t\tvar iLimit = parseInt(document.getElementById(vMI + '_char_limit').value);\r\n\r\n\t\t\t//document.getElementById(vMI + '_chars_submitted').value = '0';\r\n\t\t\tdocument.getElementById(vMI + '_chars_remaining').value = iLimit;\r\n\r\n\t\t\tstrLabel.innerHTML = iLimit + ' of ' + iLimit + ' remaining.';\r\n\r\n\t\t}\r\n\r\n\t\tfunction MICheckEntryLimit(vMI, vShowMsg){\r\n\t\t\tvar iEntryLimit = document.getElementById(vMI + '_entry_limit').value;\r\n\t\t\tvar iLimit = 0;\r\n\r\n\t\t\tif ((isNaN(iEntryLimit))||(iEntryLimit=='')){\r\n\t\t\t\t//Do nothing for now\r\n\t\t\t} else {\r\n\t\t\t\tiLimit = parseInt(iEntryLimit);\r\n\t\t\t}\r\n\r\n\t\t\tif ((iLimit<=document.getElementById(vMI + '_visible').options.length)&&(iLimit > 0)&&(document.getElementById(vMI + '_visible').options.length > 0)){\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_clone_link').href = 'javascript:MICheckEntryLimit(\\'' + vMI + '\\', true);void(0);';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_add_image').src = document.getElementById(vMI + '_add_disabled_image_path').value;\r\n\t\t\t\t\tdocument.getElementById(vMI + '_add_link').href = 'javascript:MICheckEntryLimit(\\'' + vMI + '\\', true);void(0);';\r\n\t\t\t\t} catch(err){\r\n\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\teval('oActivator' + document.getElementById(vMI + '_display_activator_id').value + '.ShowHide();');\r\n\t\t\t\t} catch(err){\r\n\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vShowMsg){\r\n\t\t\t\t\talert(document.getElementById(vMI + '_entry_limit_msg').value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//return false;\r\n\t\t\t} else {\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_clone_link').href = 'javascript:MIClone(\\'' + vMI + '\\');void(0);';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_add_image').src = document.getElementById(vMI + '_add_image_path').value;\r\n\t\t\t\t\tdocument.getElementById(vMI + '_add_link').href = 'javascript:MIBuildAnswer(\\'' + vMI + '\\');void(0);';\r\n\t\t\t\t} catch(err){\r\n\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\teval('oActivator' + document.getElementById(vMI + '_display_activator_id').value + '.ShowHide();');\r\n\t\t\t\t} catch(err){\r\n\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//return true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction MILoadInitialLimit(vMI){\r\n\t\t\tif (document.getElementById(vMI + '_limit_chars').value=='true'){\r\n\t\t\t\tfor (iOption = 0; iOption < document.getElementById(vMI + '_visible').options.length; iOption++) {\r\n\t\t\t\t\tvar strSelectedAnswer = document.getElementById(vMI + '_visible').options[iOption].value;\r\n\t\t\t\t\tvar strAString = document.getElementById(vMI + '_answer_string').value;\r\n\t\t\t\t\tvar aDelimeters = strAString.split(/<=[0-9a-z_-]*=>/gi);\r\n\t\t\t\t\tvar strKey = '';\r\n\t\t\t\t\tvar strValue = '';\r\n\r\n\t\t\t\t\t// Loop through delimeters\r\n\t\t\t\t\tif(aDelimeters.length != 0) {\r\n\t\t\t\t\t\tfor (var iDelim = 0; iDelim < aDelimeters.length; iDelim++) {\r\n\r\n\t\t\t\t\t\t\t// Break the answer string in half on the current delimeter and replace '<=' and '=>' with '' to pull out a field\r\n\t\t\t\t\t\t\tstrKey = MIDivide(strAString, aDelimeters[iDelim])[0].replace(/<=|=>/gi,'');\r\n\r\n\t\t\t\t\t\t\t// Do the same for the currently selected answer\r\n\t\t\t\t\t\t\tstrValue = MIDivide(strSelectedAnswer, aDelimeters[iDelim])[0];\r\n\r\n\t\t\t\t\t\t\tstrAString = MIDivide(strAString, aDelimeters[iDelim])[1];\r\n\t\t\t\t\t\t\tstrSelectedAnswer = MIDivide(strSelectedAnswer, aDelimeters[iDelim])[1];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstrKey = strAString.replace(/<=|=>/gi,'');\r\n\t\t\t\t\tstrValue = strSelectedAnswer;\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\tif ((strKey==document.getElementById(vMI + '_field_to_limit').value)){\r\n\t\t\t\t\t\tvar iCurLen = parseInt(document.getElementById(vMI + '_chars_submitted').value);\r\n\t\t\t\t\t\tdocument.getElementById(vMI + '_chars_submitted').value = iCurLen + strValue.length;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t*/\r\n\t\t\t\t}\r\n\r\n\t\t\t\tMICalcChars(vMI);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction MIToggleLinkDisplay(vMI, vEdit){\r\n\t\t\tif (vEdit==false){\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_edit_link').style.display = 'none';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_clone_link').style.display = 'none';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_add_image').src = document.getElementById(vMI + '_save_image_path').value;\r\n\t\t\t\t\tdocument.getElementById(vMI + '_add_image').title = 'Save Changes';\r\n\t\t\t\t\tdocument.getElementById(vMI + '_add_link').href = 'javascript:MIBuildAnswer(\\'' + vMI + '\\');void(0);';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_remove_image').src = document.getElementById(vMI + '_cancel_image_path').value;\r\n\t\t\t\t\tdocument.getElementById(vMI + '_remove_image').title = 'Cancel Changes';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_remove_all_link').style.display = 'none';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_move_up').style.display = 'none';\r\n\t\t\t\t\tdocument.getElementById(vMI + '_move_down').style.display = 'none';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_edit_link').style.display = 'inline';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_clone_link').style.display = 'inline';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_add_image').src = document.getElementById(vMI + '_add_image_path').value;\r\n\t\t\t\t\tdocument.getElementById(vMI + '_add_image').title = 'Add';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_remove_image').src = document.getElementById(vMI + '_remove_image_path').value;\r\n\t\t\t\t\tdocument.getElementById(vMI + '_remove_image').title = 'Remove Selected';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_remove_all_link').style.display = 'inline';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(vMI + '_move_up').style.display = 'inline';\r\n\t\t\t\t\tdocument.getElementById(vMI + '_move_down').style.display = 'inline';\r\n\t\t\t\t} catch (err){\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\ttry{\r\n\t\t\t\teval('oActivator' + document.getElementById(vMI + '_display_activator_id').value + '.ShowHide();');\r\n\t\t\t} catch(err){\r\n\t\t\t\t//alert(err.message);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t/************************************************************************************\r\n\t*** END MULTI INPUT SCRIPTS *********************************************************\r\n\t************************************************************************************/\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** START RESIZE FUNCTIONS **********************************************************\r\n\t************************************************************************************/\r\n\r\n\tvar objMouseX = 0;\r\n\tvar objMouseY = 0;\r\n\tvar mouseX = 0;\r\n\tvar mouseY = 0;\r\n\tvar tempX = 0;\r\n\tvar tempY = 0;\r\n\tvar sizeX = 0;\r\n\tvar sizeY = 0;\r\n\tvar resizeDirection = '';\r\n\tvar currentObj = '';\r\n\tvar initialSizes = new Array();\r\n\tvar firstResize = new Array();\r\n\r\n\tfunction addResizer(id, dir) {\r\n\t\tif (dir == '' || dir == undefined)\r\n\t\t\tdir = 'se';\r\n\r\n\t\tvar table = document.createElement('table');\r\n\t\ttable.cellPadding = 0;\r\n\t\ttable.cellSpacing = 0;\r\n\t\ttable.className = \"resizer\";\r\n\t\t\r\n\t\tvar tbody = document.createElement(\"tbody\");\r\n\t\ttable.appendChild(tbody);\r\n\r\n\t\tvar tr = document.createElement(\"tr\");\r\n\t\ttbody.appendChild(tr);\r\n\r\n\t\tvar container = document.createElement(\"td\");\r\n\t\tcontainer.id = id + '-container';\r\n\t\tcontainer.className = \"resizer-input\";\r\n\t\ttr.appendChild(container);\r\n\r\n\t\tif (dir == 'e' || dir == 'se') {\t\t\r\n\t\t\tvar td = document.createElement(\"td\");\r\n\t\t\ttd.className = \"resizer-e\";\r\n\t\t\ttd.id = id + '-resize-e';\r\n\t\t\ttd.innerHTML = '
 
'\r\n\t\t\ttr.appendChild(td);\r\n\t\t}\r\n\r\n\t\tif (dir == 's' || dir == 'se') {\t\r\n\t\t\ttr = document.createElement(\"tr\");\r\n\t\t\ttbody.appendChild(tr);\r\n\r\n\t\t\ttd = document.createElement(\"td\");\r\n\t\t\ttd.className = \"resizer-s\";\r\n\t\t\ttd.id = id + '-resize-s';\r\n\t\t\ttd.innerHTML = '
 
'\r\n\t\t\ttr.appendChild(td);\r\n\r\n\t\t\tif (dir == 'se') {\r\n\t\t\t\ttd = document.createElement(\"td\");\r\n\t\t\t\ttd.className = \"resizer-se\";\r\n\t\t\t\ttd.id = id + '-resize-se';\r\n\t\t\t\ttd.innerHTML = '
 
'\r\n\t\t\t\ttr.appendChild(td);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tresizeSurround(document.getElementById(id), table, container);\r\n\r\n\t\tdocument.body.onmousemove = function(e) { resizeObject(e) };\r\n\t\tdocument.body.onmouseup = resizeRelease;\r\n\t\ttry {document.getElementById(id + '-resize-e').onmousedown = function(e) { grabResize(id, 'e', e) } } catch(err) {};\r\n\t\ttry {document.getElementById(id + '-resize-s').onmousedown = function(e) { grabResize(id, 's', e) } } catch(err) {};\r\n\t\ttry {document.getElementById(id + '-resize-se').onmousedown = function(e) { grabResize(id, 'se', e) } } catch(err) {};\r\n\r\n\t\tfirstResize[id] = true;\r\n\t}\r\n\r\n\tfunction resizeSurround(oldElement, newElement, container){\r\n\t\tvar tempElement = oldElement\r\n\t\toldElement.parentNode.replaceChild(newElement, oldElement);\r\n\t\tcontainer.appendChild(tempElement);\r\n\t}\r\n\r\n\r\n\tfunction resizeRelease() {\r\n\t\tcurrentObj = '';\r\n\t\tresizeDirection = '';\r\n\t\ttempX = 0;\r\n\t\ttempY = 0;\r\n\t\tsizeX = 0;\r\n\t\tsizeY = 0;\r\n\t}\r\n\r\n\tfunction resizeObject(e) {\r\n\t\ttry{\r\n\t\t\tgetMouseXY(e);\r\n\r\n\t\t\tif (resizeDirection == 'e' || resizeDirection == 'se') {\r\n\t\t\t\tif (sizeX + (mouseX - tempX) >= initialSizes[currentObj.id][0])\r\n\t\t\t\t\tcurrentObj.style.width = (sizeX + (mouseX - tempX)) + 'px';\r\n\t\t\t\telse\r\n\t\t\t\t\tcurrentObj.style.width = initialSizes[currentObj.id][0]\r\n\t\t\t\tclearSelection();\r\n\t\t\t}\r\n\r\n\t\t\tif (resizeDirection == 's' || resizeDirection == 'se') {\r\n\t\t\t\t\tif (isNaN(parseInt(currentObj.rows))){\r\n\t\t\t\t\t\tif (parseInt(sizeY + (mouseY - tempY) / 13) < initialSizes[currentObj.id][1]){\r\n\t\t\t\t\t\t\tcurrentObj.rows = initialSizes[currentObj.id][1];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcurrentObj.rows = parseInt(sizeY + (mouseY - tempY) / 13);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (isNaN(parseInt(currentObj.size))!=true){\r\n\t\t\t\t\t\tif (parseInt((sizeY + (mouseY - tempY)) / 13) < initialSizes[currentObj.id][1]){\r\n\t\t\t\t\t\t\tcurrentObj.size = initialSizes[currentObj.id][1];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcurrentObj.size = (sizeY + (mouseY - tempY)) / 13;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (sizeY + (mouseY - tempY) >= initialSizes[currentObj.id][1]){\r\n\t\t\t\t\t\t\tcurrentObj.style.height = (sizeY + (mouseY - tempY)) + 'px';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcurrentObj.style.height = initialSizes[currentObj.id][1]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\tclearSelection();\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tfunction grabResize(objectId, resizeDir, e) {\r\n\t\tcurrentObj = document.getElementById(objectId);\r\n\t\tif (firstResize[objectId]) {\r\n\t\t\tinitialSizes[objectId] = [findSize(currentObj)[0], findSize(currentObj)[1]];\r\n\t\t}\r\n\t\tfirstResize[objectId] = false;\r\n\r\n\t\tresizeDirection = resizeDir;\r\n\t\ttempX = getMouseXY(e)[0];\r\n\t\ttempY = getMouseXY(e)[1];\r\n\t\tsizeX = findSize(currentObj)[0];\r\n\t\tsizeY = findSize(currentObj)[1];\r\n\t\tclearSelection();\r\n\t}\r\n\r\n\tfunction getMouseXY(e) {\r\n\t\tif (e == undefined) e = window.events\r\n\r\n\t\tif (ie) { // grab the x-y pos.s if browser is IE\r\n\t\t\tmouseX = event.clientX + document.body.scrollLeft\r\n\t\t\tmouseY = event.clientY + document.body.scrollTop\r\n\t\t} else { // grab the x-y pos.s if browser is NS\r\n\t\t\tmouseX = e.pageX\r\n\t\t\tmouseY = e.pageY\r\n\t\t} \r\n\t\t// catch possible negative values in NS4\r\n\t\tif (mouseX < 0){mouseX = 0}\r\n\t\tif (mouseY < 0){mouseY = 0} \r\n\r\n\t\treturn [mouseX, mouseY];\r\n\t}\r\n\r\n\r\n\tfunction findPos(obj) {\r\n\t\tvar curleft = curtop = 0;\r\n\t\tif (obj.offsetParent) {\r\n\t\t\tcurleft = obj.offsetLeft\r\n\t\t\tcurtop = obj.offsetTop\r\n\t\t\twhile (obj = obj.offsetParent) {\r\n\t\t\t\tcurleft += obj.offsetLeft\r\n\t\t\t\tcurtop += obj.offsetTop\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [curleft,curtop];\r\n\t}\r\n\r\n\tfunction findSize(obj) {\r\n\t\tvar width;\r\n\t\tvar height;\r\n\r\n\t\tif (op5) { \r\n\t\t\twidth = obj.style.pixelWidth;\r\n\t\t\tif (isNaN(parseInt(obj.rows)))\r\n\t\t\t\theight = parseInt(obj.size);\r\n\t\t\telse\r\n\t\t\t\theight = obj.style.pixelHeight;\r\n\t\t} else {\r\n\t\t\twidth = obj.offsetWidth;\r\n\t\t\tif (isNaN(parseInt(obj.rows)))\r\n\t\t\t\theight = parseInt(obj.size);\r\n\t\t\telse\r\n\t\t\t\theight = obj.offsetHeight;\t\t\r\n\t\t}\r\n\t\treturn [width, height];\r\n\t}\r\n\r\n\r\n\tfunction clearSelection() {\r\n\t\tif (document.selection)\r\n\t\t\tdocument.selection.empty();\r\n\t\telse if (window.getSelection)\r\n\t\t\twindow.getSelection().removeAllRanges();\r\n\t}\r\n\r\n\t/************************************************************************************\r\n\t*** END RESIZE FUNCTIONS ************************************************************\r\n\t************************************************************************************/\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** START DISPLAY ACTIVATOR FUNCTIONS ***********************************************\r\n\t************************************************************************************/\r\n\r\n\tfunction DisplayActivator(vName) {\r\n\t\tthis.FormName = vName\r\n\r\n\t\tthis.aGroups = new Array();\r\n\r\n\t\tthis.Add = Add;\r\n\t\tthis.ShowHide = ShowHide;\r\n\r\n\t\tfunction Add(vGroup) {\r\n\t\t\tvGroup.SetFormName(this.FormName);\r\n\t\t\tthis.aGroups[this.aGroups.length] = vGroup;\r\n\t\t}\r\n\r\n\t\tfunction ShowHide() {\r\n\t\t\tfor (var iGroup = 0; iGroup < this.aGroups.length; iGroup++) {\r\n\t\t\t\tthis.aGroups[iGroup].Test();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction DisplayGroup() {\r\n\t\tthis.FormName = '';\r\n\r\n\t\tvar aElements = new Array();\r\n\t\tvar aHiders = new Array();\r\n\t\tvar aConditions = new Array();\r\n\r\n\t\tthis.SetFormName = SetFormName;\r\n\t\tthis.AddId = AddId;\r\n\t\tthis.HideId = HideId;\r\n\t\tthis.AddCondition = AddCondition;\r\n\t\tthis.Test = Test;\r\n\r\n\t\tfunction SetFormName(vName) {\r\n\t\t\tthis.FormName = vName;\r\n\t\t}\r\n\r\n\t\tfunction AddId(vID) {\r\n\t\t\taElements[aElements.length] = vID;\r\n\t\t}\r\n\r\n\t\tfunction HideId(vID) {\r\n\t\t\taHiders[aHiders.length] = vID;\r\n\t\t}\r\n\r\n\t\tfunction AddCondition(vName, vType, vValues) {\r\n\t\t\t//var aArgs = AddCondition.arguments;\r\n\t\t\tvar aArgs = vValues.split('~');\r\n\r\n\t\t\tvar aValues = new Array();\r\n\t\t\tfor (var iArgs = 0; iArgs < aArgs.length; iArgs++) {\r\n\t\t\t\taValues[aValues.length] = aArgs[iArgs];\r\n\t\t\t}\r\n\r\n\t\t\taConditions[aConditions.length] = [vName, vType, aValues];\r\n\t\t}\r\n\r\n\t\tfunction Test() {\r\n\t\t\tvar bShow = true;\r\n\t\t\tvar bMultilist = false;\r\n\t\t\tvar bPassed = false;\r\n\t\t\tvar strValue;\r\n\t\t\tvar strName;\r\n\t\t\tvar strType;\r\n\t\t\tfor (var iTest = 0; iTest < aConditions.length; iTest++) {\r\n\t\t\t\tbMultilist = false;\r\n\t\t\t\tbShow = true;\r\n\t\t\t\tbPassed = false;\r\n\r\n\t\t\t\ttry{\r\n\r\n\t\t\t\t\tstrName = aConditions[iTest][0];\r\n\t\t\t\t\tstrType = aConditions[iTest][1];\r\n\t\t\t\t\tif ((strType=='radio')||(strType=='flagfield')) {\r\n\t\t\t\t\t\tstrValue = getDispCheckedValue(strName, this.FormName);\r\n\t\t\t\t\t} else if (strType=='checkbox'){\r\n\t\t\t\t\t\tbMultilist = true;\r\n\t\t\t\t\t\tstrValue = getDispCheckedValue(strName, this.FormName);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstrValue = document.getElementById(strName).value;\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\tif (strValue == undefined) {\r\n\t\t\t\t\t\tstrValue = '';\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\tif (bMultilist==true){\r\n\t\t\t\t\t\tvar aValues = strValue.split('|');\r\n\r\n\t\t\t\t\t\tfor (var iCondition = 0; iCondition < aConditions[iTest][2].length; iCondition++) {\r\n\t\t\t\t\t\t\tfor (var iVal = 0; iVal < aValues.length; iVal++){\r\n\t\t\t\t\t\t\t\tif (aValues[iVal] == aConditions[iTest][2][iCondition]) {\r\n\t\t\t\t\t\t\t\t\tbPassed = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfor (var iCondition = 0; iCondition < aConditions[iTest][2].length; iCondition++) {\r\n\t\t\t\t\t\t\tif (strValue == aConditions[iTest][2][iCondition]) {\r\n\t\t\t\t\t\t\t\tbPassed = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tcatch (err){\r\n\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!bPassed) {\r\n\t\t\t\tbShow = false;\r\n\t\t\t}\t\t\t\t\t\r\n\r\n\t\t\tvar enable;\r\n\t\t\tvar enableNext;\r\n\t\t\t/*\r\n\t\t\tcainb 1/10/2013\r\n\t\t\tAdded code to disable nested input when a display activator turns them off.. specifically to keep them from being POSTed for Cart configs.\r\n\t\t\t*/\r\n\t\t\tfor (iElement = 0; iElement < aElements.length; iElement++) {\r\n\t\t\t\ttry{\r\n\t\t\t\t\tif (bShow) {\r\n\t\t\t\t\t\tjQuery('#' + aElements[iElement]).show();\r\n\t\t\t\t\t\tif(customForm) {\r\n\t\t\t\t\t\t\t$(\"#\"+ aElements[iElement]+\" :input\").each(function(i){\r\n\t\t\t\t\t\t\t\tenable = false;\r\n\t\t\t\t\t\t\t\tif($(this).attr('id').indexOf('_nested') > 0)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif($(this).attr('id').indexOf('_nested1') > 0){ //always enable the first droplist in nested sets\r\n\t\t\t\t\t\t\t\t\t\tenable = true;\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tenableNext = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif($(this).val()!='')\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tenable = true;\r\n\t\t\t\t\t\t\t\t\t\tenableNext = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tenable = true;\r\n\t\t\t\t\t\t\t\t\tenableNext = false;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(enable || enableNext) {\r\n\t\t\t\t\t\t\t\t\tif($(this).data(\"locked-by\")===undefined || $(this).data(\"locked-by\")==aElements[iElement]){\r\n\t\t\t\t\t\t\t\t\t\t$(this).removeAttr(\"disabled\");\r\n\t\t\t\t\t\t\t\t\t\t$.removeData($(this), \"locked-by\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(!enable) {enableNext = false;}\r\n\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tjQuery('#' + aElements[iElement]).hide();\r\n\t\t\t\t\t\tif(customForm){\r\n\t\t\t\t\t\t\t$(\"#\"+ aElements[iElement]+\" :input\").each(function(i){\r\n\t\t\t\t\t\t\t\t$(this).attr(\"disabled\", \"disabled\");\r\n\t\t\t\t\t\t\t\tif ($(this).data(\"locked-by\")===undefined)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t$(this).data(\"locked-by\",aElements[iElement]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//$(\"#\"+ aElements[iElement]+\" :input\").attr(\"disabled\", \"disabled\");\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\tcatch (err){\r\n\t\t\t\t\t//alert(err.message + '\\n\\nShow ID: ' + aElements[iElement]);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tfor (iHideMe = 0; iHideMe < aHiders.length; iHideMe++) {\r\n\t\t\t\ttry{\r\n\t\t\t\t\tif (bShow) {\r\n\t\t\t\t\t\tjQuery('#' + aHiders[iHideMe]).hide();\r\n\t\t\t\t\t\tif(customForm) {\r\n\t\t\t\t\t\t\t$(\"#\"+ aHiders[iHideMe]+\" :input\").each(function(i){\r\n\t\t\t\t\t\t\t\t$(this).attr(\"disabled\", \"disabled\");\r\n\t\t\t\t\t\t\t\tif ($(this).data(\"locked-by\")===undefined)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t$(this).data(\"locked-by\",aHiders[iHideMe]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tjQuery('#' + aHiders[iHideMe]).show();\r\n\t\t\t\t\t\tif(customForm) {\r\n\t\t\t\t\t\t\t$(\"#\"+ aHiders[iHideMe] +\" :input\").each(function(i){\r\n\t\t\t\t\t\t\t\tenable = false;\r\n\t\t\t\t\t\t\t\tif($(this).attr('id').indexOf('_nested') > 0)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif($(this).attr('id').indexOf('_nested1') > 0){ //always enable the first droplist in nested sets\r\n\t\t\t\t\t\t\t\t\t\tenable = true;\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tenableNext = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif($(this).val()!='')\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tenable = true;\r\n\t\t\t\t\t\t\t\t\t\tenableNext = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tenable = true;\r\n\t\t\t\t\t\t\t\t\tenableNext = false;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(enable || enableNext) {\r\n\t\t\t\t\t\t\t\t\tif($(this).data(\"locked-by\")===undefined || $(this).data(\"locked-by\")==aHiders[iHideMe]){\r\n\t\t\t\t\t\t\t\t\t\t$(this).removeAttr(\"disabled\");\r\n\t\t\t\t\t\t\t\t\t\t$.removeData($(this), \"locked-by\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(!enable) {enableNext = false;}\r\n\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\tcatch (err){\r\n\t\t\t\t\t//alert(err.message + '\\n\\nHide ID: ' + aHiders[iHideMe]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getDispCheckedValue(vRadioName, vFormName) {\r\n\t\tvar oForm;\r\n\t\tvar sCheckedVals = '';\r\n\r\n\t\tfor (iForm = 0; iForm < document.forms.length; iForm++){\r\n\t\t\tif (document.forms[iForm].id==vFormName){\r\n\t\t\t\toForm = document.forms[iForm];\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (oForm!=undefined){\r\n\t\t\t\r\n\t\t\toRadio = jQuery('input[name=\"' + vRadioName + '\"]:checked');\r\n\t\t\tif(!oRadio) {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tvar iRadioLength = oRadio.length;\r\n\r\n\t\t\tif(iRadioLength == undefined){\r\n\t\t\t\tif(oRadio) {\r\n\t\t\t\t\treturn oRadio.val();\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\toRadio.each(function(){\r\n\r\n\t\t\t\t\tif (sCheckedVals!=''){\r\n\t\t\t\t\t\tsCheckedVals += '|' + jQuery(this).val();\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tsCheckedVals = jQuery(this).val();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn sCheckedVals;\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/************************************************************************************\r\n\t*** END DISPLAY ACTIVATOR FUNCTIONS *************************************************\r\n\t************************************************************************************/\r\n\r\n\t/************************************************************************************\r\n\t*** START XML/AJAX FUNCTIONS ********************************************************\r\n\t************************************************************************************/\r\n\r\n\tfunction createXMLDoc(XMLFile) {\r\n\t\t// code for IE\r\n\t\tif (window.ActiveXObject){\r\n\t\t\txmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");\r\n\t\t\txmlDoc.loadXML(XMLFile);\r\n\t\t// code for Mozilla, Firefox, Opera, etc.\r\n\t\t} else if (document.implementation && document.implementation.createDocument){\r\n\t\t\tvar parser = new DOMParser();\r\n\t\t\tvar xmlDoc = parser.parseFromString(XMLFile, \"text/xml\");\r\n\t\t} else {\r\n\t\t\talert('Your browser cannot handle this script.');\r\n\t\t}\r\n\r\n\t\treturn(xmlDoc);\r\n\t}\r\n\r\n\tfunction loadXMLDoc(XMLFile) {\r\n\t\t// code for IE\r\n\t\tif (window.ActiveXObject){\r\n\t\t\txmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");\r\n\t\t\txmlDoc.async=\"false\";\r\n\t\t\txmlDoc.load(XMLFile);\r\n\t\t// code for Mozilla, Firefox, Opera, etc.\r\n\t\t} else if (document.implementation && document.implementation.createDocument){\r\n\t\t\tvar xmlDoc = document.implementation.createDocument(\"\",\"\",null);\r\n\t\t\txmlDoc.async=\"false\";\r\n\t\t\txmlDoc.load(XMLFile);\r\n\t\t} else {\r\n\t\t\talert('Your browser cannot load \"' + XMLFile + '\"'); \r\n\t\t}\r\n\r\n\t\treturn(xmlDoc);\r\n\t}\r\n\r\n\tfunction serializeXML(XMLObj){\r\n\t\tvar strXML = '';\r\n\r\n\t\t// code for IE\r\n\t\tif (window.ActiveXObject){\r\n\t\t\tstrXML = XMLObj.xml;\r\n\t\t// code for Mozilla, Firefox, Opera, etc.\r\n\t\t} else if (document.implementation && document.implementation.createDocument){\r\n\t\t\t//xmlDoc = document.implementation.createDocument(\"\", \"\", null);\r\n\t\t\tstrXML = (new XMLSerializer()).serializeToString(XMLObj);\r\n\t\t} else {\r\n\t\t\talert('Your browser cannot serialize this script.');\r\n\t\t}\r\n\r\n\t\treturn(strXML);\r\n\t}\r\n\r\n\tfunction getNodeValue(xmlDocObj, tagName, index) {\r\n\t\ttry{\r\n\t\t\tif (xmlDocObj.getElementsByTagName(tagName)[index].childNodes[0] != null){\r\n\t\t\t\treturn xmlDocObj.getElementsByTagName(tagName)[index].childNodes[0].nodeValue;\r\n\t\t\t} else {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t} catch (err){\r\n\t\t\t//alert(err.message);\r\n\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t// Create an XMLHttpRequest object\r\n\tfunction GetXmlHttpObject() {\r\n\t\tvar xmlHttp = null;\r\n\t\ttry {\r\n\t\t\t// Firefox, Opera 8.0+, Safari\r\n\t\t\txmlHttp = new XMLHttpRequest();\r\n\t\t} catch (e) {\r\n\t\t\t// Internet Explorer\r\n\t\t\ttry {\r\n\t\t\t\txmlHttp = new ActiveXObject(\"Msxml2.XMLHTTP\");\r\n\t\t\t} catch (e) {\r\n \txmlHttp = new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn xmlHttp;\r\n\t}\r\n\r\n\tfunction MakeAJAXRequest(fncHandleData, strPage, bAsync, aShow, aHide, bDisable, errorMsg, xmlDoc, vID, bDebug) {\r\n\t\t//ResizeLoadingBG();\r\n\t\txmlHttp = GetXmlHttpObject();\r\n\t\tif (xmlHttp==null){\r\n\t\t\talert (\"Your browser does not support AJAX.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (bDisable == null){\r\n\t\t\tbDisable = false;\r\n\t\t}\r\n\r\n\t\tvar i;\r\n\r\n\t\ttry{\r\n\t\t\tif (aShow != null){\r\n\t\t\t\tfor (i = 0; i < aShow.length; i++){\r\n\t\t\t\t\tif (bDisable==true){\r\n\t\t\t\t\t\tdocument.getElementById(aHide[i]).disabled = false;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdocument.getElementById(aShow[i]).style.display = 'block';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\t\t\r\n\t\t}\r\n\t\tcatch (err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\r\n\t\ttry{\r\n\t\t\tif (aHide != null){\r\n\t\t\t\tfor (i = 0; i < aHide.length; i++){\r\n\t\t\t\t\tif (bDisable==true){\r\n\t\t\t\t\t\tdocument.getElementById(aHide[i]).disabled = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdocument.getElementById(aHide[i]).style.display = 'none';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\r\n\r\n\t\tif (((getQueryVariable('action')=='showpostfield')||(getQueryVariable('showpostfield')=='1'))&&(bDebug)){\r\n\t\t\twindow.open(strPage + '&r_id=' + genID());\r\n\t\t}\r\n\r\n\t\txmlHttp.open('get', strPage + '&r_id=' + genID(), bAsync);\r\n\t\txmlHttp.onreadystatechange = function() { HandleData(fncHandleData, errorMsg, vID, true) };\r\n\t\tif (xmlDoc == undefined){\r\n\t\t\txmlDoc = null;\r\n\t\t}\r\n\t\txmlHttp.send(xmlDoc);\r\n\t}\r\n\r\n\r\n\tfunction MakeAJASPRequest(fncHandleData, strPage, bAsync, aShow, aHide, bDisable, errorMsg, xmlDoc, vID, bDebug) {\r\n\t\t//ResizeLoadingBG();\r\n\t\txmlHttp = GetXmlHttpObject();\r\n\t\tif (xmlHttp==null){\r\n\t\t\talert (\"Your browser does not support AJAX.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (bDisable == null){\r\n\t\t\tbDisable = false;\r\n\t\t}\r\n\r\n\t\tvar i;\r\n\r\n\t\ttry{\r\n\t\t\tif (aShow != null){\r\n\t\t\t\tfor (i = 0; i < aShow.length; i++){\r\n\t\t\t\t\tif (bDisable==true){\r\n\t\t\t\t\t\tdocument.getElementById(aHide[i]).disabled = false;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdocument.getElementById(aShow[i]).style.display = 'block';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\t\t\r\n\t\t}\r\n\t\tcatch (err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\r\n\t\ttry{\r\n\t\t\tif (aHide != null){\r\n\t\t\t\tfor (i = 0; i < aHide.length; i++){\r\n\t\t\t\t\tif (bDisable==true){\r\n\t\t\t\t\t\tdocument.getElementById(aHide[i]).disabled = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdocument.getElementById(aHide[i]).style.display = 'none';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\r\n\r\n\t\tif (((getQueryVariable('action')=='showpostfield')||(getQueryVariable('showpostfield')=='1'))&&(bDebug)){\r\n\t\t\twindow.open(strPage + '&r_id=' + genID());\r\n\t\t}\r\n\r\n\t\txmlHttp.open('get', strPage + '&r_id=' + genID(), bAsync);\r\n\t\txmlHttp.onreadystatechange = function() { HandleData(fncHandleData, errorMsg, vID, false) };\r\n\t\tif (xmlDoc == undefined){\r\n\t\t\txmlDoc = null;\r\n\t\t}\r\n\t\txmlHttp.send(xmlDoc);\r\n\t}\r\n\r\n\tfunction HandleData(fncHandleData, errorMsg, vID, vReturnXML) {\r\n\t\tif (errorMsg == undefined || errorMsg == \"\") errorMsg = \"An error has occured.\"\r\n\t\tif(xmlHttp.readyState == 4) { //Finished loading the response\r\n\r\n\t\t\tif (vReturnXML==true){\r\n\t\t\t\txmlDoc = createXMLDoc(xmlHttp.responseText);\r\n\t\t\t} else {\r\n\t\t\t\tvar strResponse = xmlHttp.responseText;\r\n\t\t\t}\r\n\r\n\t\t\tif (xmlDoc == null && vReturnXML==true)\t{\r\n\t\t\t\talert(errorMsg);\r\n\t\t\t\tHideLoading()\r\n\t\t\t} else {\r\n\t\t\t\tif (vReturnXML==true){\r\n\t\t\t\t\tfncHandleData(xmlDoc, vID);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfncHandleData(strResponse, vID);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** END XML/AJAX FUNCTIONS **********************************************************\r\n\t************************************************************************************/\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** START CAPTCHA FUNCTIONS *********************************************************\r\n\t************************************************************************************/\r\n\tfunction fncValidateCaptcha(vID, vPageName){\r\n\t\txmlHttp = GetXmlHttpObject();\r\n\t\txmlHttp.open('get', vPageName + '?fb-pageaction=fb-ajaxcall&fb-ajaxaction=validate_captcha&f_key=' + getQueryVariable('f_key') + '&r_id=' + genID());\r\n\t\txmlHttp.onreadystatechange = function (){ UpdateCaptchaCheck(vID) };\r\n\t\txmlHttp.send(null);\r\n\t}\r\n\r\n\tfunction UpdateCaptchaCheck(vID){\r\n\t\tif(xmlHttp.readyState == 4) { //Finished loading the response\r\n\t\t\tvar strResponse = xmlHttp.responseText;\r\n\t\t\tvar strCheck = document.getElementById(vID).value;\r\n\r\n\t\t\tif (strResponse.length > 0){\r\n\t\t\t\tif (strResponse==strCheck){\r\n\t\t\t\t\tdocument.getElementById(vID + '_valid').value = '1';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument.getElementById(vID + '_valid').value = '0';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdocument.getElementById(vID + '_valid').value = '0';\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\t/************************************************************************************\r\n\t*** END CAPTCHA FUNCTIONS ***********************************************************\r\n\t************************************************************************************/\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** START SEARCH STRING FUNCTIONS ***************************************************\r\n\t************************************************************************************/\r\n\r\n\tvar aSSBCals = new Array();\r\n\r\n\tfunction AddSSBFilter(vSSB, vValues) {\r\n\r\n\t\tif (document.getElementById(vSSB + '_filter_count').value=='0'){\r\n\t\t\tdocument.getElementById(vSSB + '_table').deleteRow(1);\r\n\t\t}\r\n\r\n\t\tdocument.getElementById(vSSB + '_filter_count').value = parseInt(document.getElementById(vSSB + '_filter_count').value) + 1;\r\n\t\tdocument.getElementById(vSSB + '_max_filter_count').value = parseInt(document.getElementById(vSSB + '_max_filter_count').value) + 1;\r\n\r\n\t\tvar iAdminMode = document.getElementById(vSSB + '_admin_mode').value;\r\n\t\tvar iUseZip = document.getElementById(vSSB + '_use_zip').value;\r\n\t\tvar sDefaultFilter = document.getElementById(vSSB + '_default_filter').value;\r\n\t\tvar oSSBTable = document.getElementById(vSSB + '_table');\r\n\t\tvar iLastRow = oSSBTable.rows.length;\r\n\t\tvar iRow = document.getElementById(vSSB + '_max_filter_count').value;\r\n\t\tvar oFilter = oSSBTable.insertRow(iLastRow);\r\n\t\tvar sRowBuilder = '';\r\n\r\n\t\tvar sLColor1 = 'cccccc';\r\n\t\tvar sRColor1 = 'cccccc';\r\n\t\tvar sLColor2 = 'cccccc';\r\n\t\tvar sRColor2 = 'cccccc';\r\n\t\tvar sLVal1 = '0';\r\n\t\tvar sRVal1 = '0';\r\n\t\tvar sLVal2 = '0';\r\n\t\tvar sRVal2 = '0';\r\n\t\tvar sJoinType = '|and|';\r\n\t\tvar sSearchField = '';\r\n\t\tvar sNumCheck = '';\r\n\t\tvar sDateCheck = '';\r\n\t\tvar sNotCheck = '';\r\n\r\n\t\tif (isArray(vValues)){\r\n\t\t\t// Key\r\n\t\t\t//\r\n\t\t\t// 0 = Left Parenthesis 1 (true/false)\r\n\t\t\t// 1 = Left Parenthesis 2 (true/false)\r\n\t\t\t// 2 = Join Type (|and|/|or|)\r\n\t\t\t// 3 = Search Command\r\n\t\t\t// 4 = Search Field\r\n\t\t\t// 5 = Numeric (true/false)\r\n\t\t\t// 6 = Date (true/false)\r\n\t\t\t// 7 = Value 1\r\n\t\t\t// 8 = Value 2\r\n\t\t\t// 9 = Value 3\r\n\t\t\t// 10 = Date Type 1 (1/2/3)\r\n\t\t\t// 11 = Date Type 2 (1/2/3)\r\n\t\t\t// 12 = Right Parenthesis 2 (true/false)\r\n\t\t\t// 13 = Right Parenthesis 1 (true/false)\r\n\t\t\t// 13 = Not (true/false)\r\n\r\n\t\t\tif (vValues[0]){\r\n\t\t\t\tsLColor1 = '000000';\r\n\t\t\t\tsLVal1 = '1';\r\n\t\t\t} else {\r\n\t\t\t\tsLColor1 = 'cccccc';\r\n\t\t\t\tsLVal1 = '0';\r\n\t\t\t}\r\n\r\n\t\t\tif (vValues[1]){\r\n\t\t\t\tsLColor2 = '000000';\r\n\t\t\t\tsLVal2 = '1';\r\n\t\t\t} else {\r\n\t\t\t\tsLColor2 = 'cccccc';\r\n\t\t\t\tsLVal2 = '0';\r\n\t\t\t}\r\n\r\n\t\t\tsJoinType = vValues[2];\r\n\t\t\tsDefaultFilter = vValues[3];\r\n\t\t\tsSearchField = vValues[4];\r\n\r\n\t\t\tif (vValues[5]){\r\n\t\t\t\tsNumCheck = ' checked';\r\n\t\t\t}\r\n\r\n\t\t\tif (vValues[6]){\r\n\t\t\t\tsDateCheck = ' checked';\r\n\t\t\t}\r\n\r\n\t\t\tif (vValues[12]){\r\n\t\t\t\tsRColor2 = '000000';\r\n\t\t\t\tsRVal2 = '1';\r\n\t\t\t} else {\r\n\t\t\t\tsRColor2 = 'cccccc';\r\n\t\t\t\tsRVal2 = '0';\r\n\t\t\t}\r\n\r\n\t\t\tif (vValues[13]){\r\n\t\t\t\tsRColor1 = '000000';\r\n\t\t\t\tsRVal1 = '1';\r\n\t\t\t} else {\r\n\t\t\t\tsRColor1 = 'cccccc';\r\n\t\t\t\tsRVal1 = '0';\r\n\t\t\t}\r\n\r\n\t\t\tif (vValues[14]){\r\n\t\t\t\tsNotCheck = ' checked';\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t\t// Opening Parenthesis cell\r\n\t\tvar oCell0 = oFilter.insertCell(0);\r\n\t\toCell0.align = 'center';\r\n\r\n\t\tsRowBuilder = ''\r\n\t\tsRowBuilder = sRowBuilder + ''\r\n\t\tsRowBuilder = sRowBuilder + ''\r\n\t\tsRowBuilder = sRowBuilder + ''\r\n\r\n\t\toCell0.innerHTML = sRowBuilder;\r\n\r\n\t\t// Field/Command cell\r\n\t\tvar oCell1 = oFilter.insertCell(1);\r\n\r\n\t\tif (iLastRow!=1){\r\n\t\t\tsRowBuilder = ''\r\n\t\t} else {\r\n\t\t\tsRowBuilder = '';\r\n\t\t}\r\n\r\n\t\tif (iAdminMode=='1'){\r\n\t\t\tsRowBuilder = sRowBuilder + '';\r\n\t\t} else {\r\n\t\t\tsRowBuilder = sRowBuilder + ' ';\r\n\t\t}\r\n\r\n\t\toCell1.innerHTML = sRowBuilder;\r\n\r\n\t\t// Not cell\r\n\t\tvar oCell2 = oFilter.insertCell(2);\r\n\t\toCell2.align = 'center';\r\n\t\toCell2.innerHTML = '';\r\n\r\n\t\t// Command/Field cell\r\n\t\tvar oCell3 = oFilter.insertCell(3);\r\n\r\n\t\tif (iAdminMode=='1'){\r\n\t\t\tsRowBuilder = ' ';\r\n\t\t} else {\r\n\t\t\tsRowBuilder = '';\r\n\t\t}\r\n\t\toCell3.innerHTML = sRowBuilder;\r\n\r\n\t\t// Numeric cell\r\n\t\tvar oCell4 = oFilter.insertCell(4);\r\n\t\toCell4.align = 'center';\r\n\t\toCell4.innerHTML = '
'\r\n\r\n\t\t// Date cell\r\n\t\tvar oCell5 = oFilter.insertCell(5);\r\n\t\toCell5.align = 'center';\r\n\t\toCell5.innerHTML = '
'\r\n\r\n\t\t// Values cell\r\n\t\tvar oCell6 = oFilter.insertCell(6);\r\n\t\toCell6.innerHTML = '
';\r\n\r\n\t\tChangeSSBValueFields(vSSB, iRow, vValues);\r\n\t\tSSBUseNumeric(vSSB, iRow);\r\n\t\tShowSSBDates(vSSB, iRow);\r\n\r\n\t\t// Closing Parenthesis cell\r\n\t\tvar oCell7 = oFilter.insertCell(7);\r\n\t\toCell7.align = 'center';\r\n\r\n\t\tsRowBuilder = ' )'\r\n\t\tsRowBuilder = sRowBuilder + ''\r\n\t\tsRowBuilder = sRowBuilder + ' )'\r\n\t\tsRowBuilder = sRowBuilder + ''\r\n\r\n\t\toCell7.innerHTML = sRowBuilder;\r\n\r\n\t\t// Delete cell\r\n\t\tvar oCell8 = oFilter.insertCell(8);\r\n\t\toCell8.align = 'center';\r\n\t\toCell8.innerHTML = '\"Remove';\r\n\r\n\t\tBuildSSBValue(vSSB);\r\n\t}\r\n\r\n\tfunction GetSSBFFTables(vSSB){\r\n\t\treturn document.getElementById(vSSB + '_table_list').value;\r\n\t}\r\n\r\n\tfunction AddSSBFirstRow(vSSB){\r\n\t\tvar oSSBTable = document.getElementById(vSSB + '_table');\r\n\t\tvar iLastRow = oSSBTable.rows.length;\r\n\t\tvar oRow = oSSBTable.insertRow(iLastRow);\r\n\r\n\t\tvar oCell0 = oRow.insertCell(0);\r\n\t\toCell0.colSpan = 9;\r\n\t\toCell0.innerHTML = document.getElementById(vSSB + '_start_tip').value;\r\n\r\n\t}\r\n\r\n\tfunction RemoveSSBFilter(vSSB, vRow, vRowNum){\r\n\t\tvar oSSBTable = document.getElementById(vSSB + '_table');\r\n\t\tvar iLastRow = oSSBTable.rows.length;\r\n\r\n\t\tif (confirm('Are you sure you wish to remove this filter?')){\r\n\t\t\tif (iLastRow > 1){\r\n\t\t\t\tdocument.getElementById(vSSB + '_filter_count').value = parseInt(document.getElementById(vSSB + '_filter_count').value) - 1;\r\n\t\t\t\toSSBTable.deleteRow(vRow.parentNode.parentNode.rowIndex);\r\n\t\t\t}\r\n\r\n\t\t\tBuildSSBValue(vSSB);\r\n\t\t}\r\n\r\n\t\tif (oSSBTable.rows.length=='1'){\r\n\t\t\tAddSSBFirstRow(vSSB);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tfunction BuildSSBValue(vSSB){\r\n\t\tvar iMaxFilterCount = parseInt(document.getElementById(vSSB + '_max_filter_count').value);\r\n\t\tvar strSS = '';\r\n\t\tvar strParenth = '';\r\n\t\tvar iLeftParenth = 0;\r\n\t\tvar iRightParenth = 0;\r\n\t\tvar strNumeric = '';\r\n\r\n\t\tfor (var iFilter = 1; iFilter <= iMaxFilterCount; iFilter++){\r\n\t\t\ttry{\r\n\t\t\t\ttry{\r\n\t\t\t\t\tif (document.getElementById(vSSB + '_numeric_' + iFilter).checked==true){\r\n\t\t\t\t\t\tstrNumeric = '@'\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstrNumeric = ''\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\tcatch (err){\r\n\t\t\t\t\tstrNumeric = ''\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (iFilter > 1){\r\n\t\t\t\t\tstrSS = strSS + document.getElementById(vSSB + '_connector_' + iFilter).value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (document.getElementById(vSSB + '_left_parenth_status_' + iFilter + '_1').value=='1'){\r\n\t\t\t\t\tstrSS = strSS + '(';\r\n\t\t\t\t\tstrParenth = strParenth + '(';\r\n\t\t\t\t\tiLeftParenth++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (document.getElementById(vSSB + '_left_parenth_status_' + iFilter + '_2').value=='1'){\r\n\t\t\t\t\tstrSS = strSS + '(';\r\n\t\t\t\t\tstrParenth = strParenth + '(';\r\n\t\t\t\t\tiLeftParenth++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstrSS = strSS + document.getElementById(vSSB + '_searchcommand_' + iFilter).value;\r\n\r\n\t\t\t\tif (document.getElementById(vSSB + '_not_' + iFilter).checked==true){\r\n\t\t\t\t\tstrSS = strSS + 'not';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstrSS = strSS + '~' + document.getElementById(vSSB + '_searchfield_' + iFilter).value;\r\n\r\n\t\t\t\tswitch (document.getElementById(vSSB + '_searchcommand_' + iFilter).value){\r\n\t\t\t\t\tcase 'searchleft': case 'searchright':\r\n\t\t\t\t\t\ttry{\r\n\t\t\t\t\t\t\tstrSS = strSS + '~' + strNumeric + document.getElementById(vSSB + '_value_' + iFilter).value;\r\n\t\t\t\t\t\t\tstrSS = strSS + '~' + strNumeric + document.getElementById(vSSB + '_value_' + iFilter + '_2').value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch (err){\r\n\t\t\t\t\t\t\t//alert('Left/Right - ' + err.message);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'searchbetween':\r\n\t\t\t\t\t\ttry{\r\n\t\t\t\t\t\t\tif (document.getElementById(vSSB + '_date_type_' + iFilter + '_2').checked==true){\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~<>';\r\n\t\t\t\t\t\t\t} else if (document.getElementById(vSSB + '_date_type_' + iFilter + '_3').checked==true){\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~<>';\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~' + strNumeric + document.getElementById(vSSB + '_value_' + iFilter).value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (document.getElementById(vSSB + '_date_type_' + iFilter + '_2a').checked==true){\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~<>';\r\n\t\t\t\t\t\t\t} else if (document.getElementById(vSSB + '_date_type_' + iFilter + '_3a').checked==true){\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~<>';\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~' + strNumeric + document.getElementById(vSSB + '_value_' + iFilter + '_2').value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch (err){\r\n\t\t\t\t\t\t\t//alert('Between - ' + err.message);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'searchgreaterthan': case 'searchgreaterthanequal': case 'searchlessthan': case 'searchlessthanequal': case 'searchexact': case 'searchlike':\r\n\t\t\t\t\t\ttry{\r\n\t\t\t\t\t\t\tif (document.getElementById(vSSB + '_date_type_' + iFilter + '_2').checked==true){\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~<>';\r\n\t\t\t\t\t\t\t} else if (document.getElementById(vSSB + '_date_type_' + iFilter + '_3').checked==true){\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~<>';\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~' + strNumeric + document.getElementById(vSSB + '_value_' + iFilter).value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch (err){\r\n\t\t\t\t\t\t\t//alert('Exact/Less/Greater - ' + err.message);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'isnumeric': case 'isdate': case 'isnull':\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'searchzipcodeprox':\r\n\t\t\t\t\t\ttry{\r\n\t\t\t\t\t\t\tstrSS = strSS + '~' + document.getElementById(vSSB + '_value_' + iFilter).value;\r\n\t\t\t\t\t\t\tstrSS = strSS + '~' + document.getElementById(vSSB + '_value_' + iFilter + '_2').value;\r\n\t\t\t\t\t\t\tif (document.getElementById(vSSB + '_value_' + iFilter + '_3').checked==true){\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~1';\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tstrSS = strSS + '~0';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch (err){\r\n\t\t\t\t\t\t\t//alert('ZIP - ' + err.message);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\ttry{\r\n\t\t\t\t\t\t\tstrSS = strSS + '~' + strNumeric + document.getElementById(vSSB + '_value_' + iFilter).value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch (err){\r\n\t\t\t\t\t\t\t//alert('Default - ' + err.message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tif (document.getElementById(vSSB + '_right_parenth_status_' + iFilter + '_1').value=='1'){\r\n\t\t\t\t\tstrSS = strSS + ')';\r\n\t\t\t\t\tstrParenth = strParenth + ')';\r\n\t\t\t\t\tiRightParenth++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (document.getElementById(vSSB + '_right_parenth_status_' + iFilter + '_2').value=='1'){\r\n\t\t\t\t\tstrSS = strSS + ')';\r\n\t\t\t\t\tstrParenth = strParenth + ')';\r\n\t\t\t\t\tiRightParenth++;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\tcatch (err){\r\n\t\t\t\t//alert(err.message);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdocument.getElementById(vSSB).value = strSS;\r\n\t\tdocument.getElementById(vSSB + '_left_parenth_on').value = iLeftParenth;\r\n\t\tdocument.getElementById(vSSB + '_right_parenth_on').value = iRightParenth;\r\n\t\tdocument.getElementById(vSSB + '_parenth_string').value = strParenth;\r\n\r\n\t}\r\n\r\n\tfunction SSBToggleParenthesis(vSSB, vSide, vRow, vPos){\r\n\t\tvar oPLink = document.getElementById(vSSB + '_' + vSide + '_parenth_' + vRow + '_' + vPos);\r\n\t\tvar oPStatus = document.getElementById(vSSB + '_' + vSide + '_parenth_status_' + vRow + '_' + vPos);\r\n\r\n\t\tif (oPStatus.value=='0'){\r\n\t\t\toPLink.style.color = '#000000';\r\n\t\t\toPStatus.value = '1';\r\n\t\t} else {\r\n\t\t\toPLink.style.color = '#cccccc';\r\n\t\t\toPStatus.value = '0';\r\n\t\t}\r\n\r\n\t\tBuildSSBValue(vSSB);\r\n\t}\r\n\r\n\tfunction BuildSSBCommandList(vDefault, vAdminMode, vUseZip){\r\n\t\tvar sCommandList = '';\r\n\r\n\t\tif (vAdminMode=='1'){\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t} else {\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\t\t\tsCommandList = sCommandList + ''\r\n\r\n\t\t\tif (vUseZip=='1'){\r\n\t\t\t\tsCommandList = sCommandList + ''\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn sCommandList;\r\n\t}\r\n\r\n\tfunction CheckSSBSelected(vDefault, vCurrent){\r\n\t\tif (vDefault==vCurrent){\r\n\t\t\treturn ' selected';\r\n\t\t} else {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n\r\n\tfunction ChangeSSBValueFields(vSSB, vRow, vValues){\r\n\t\tvar sVal1 = '';\r\n\t\tvar sVal2 = '';\r\n\t\tvar sVal3 = '';\r\n\t\tvar iDateType1 = 1;\r\n\t\tvar iDateType2 = 1;\r\n\t\tvar sNumCheck = '';\r\n\t\tvar sDateCheck = '';\r\n\t\tvar aDateParts1;\r\n\t\tvar aDateParts2;\r\n\t\tvar iDateQty1 = '';\r\n\t\tvar iDateQty2 = '';\r\n\t\tvar sTime1 = 'days';\r\n\t\tvar sTime2 = 'days';\r\n\t\tvar sWhen1 = '-';\r\n\t\tvar sWhen2 = '-';\r\n\r\n\t\tif (isArray(vValues)){\r\n\t\t\t// Key\r\n\t\t\t//\r\n\t\t\t// 5 = Numeric (true/false)\r\n\t\t\t// 6 = Date (true/false)\r\n\t\t\t// 7 = Value 1\r\n\t\t\t// 8 = Value 2\r\n\t\t\t// 9 = Value 3\r\n\t\t\t// 10 = Date Type 1 (1/2/3)\r\n\t\t\t// 11 = Date Type 2 (1/2/3)\r\n\r\n\t\t\tif (vValues[5]){\r\n\t\t\t\tsNumCheck = ' checked';\r\n\t\t\t}\r\n\r\n\t\t\tif (vValues[6]){\r\n\t\t\t\tsDateCheck = ' checked';\r\n\t\t\t}\r\n\r\n\t\t\tsVal1 = vValues[7];\r\n\t\t\tsVal2 = vValues[8];\r\n\r\n\t\t\tif (vValues[9]=='1'){\r\n\t\t\t\tsVal3 = ' checked';\r\n\t\t\t}\r\n\r\n\t\t\tiDateType1 = vValues[10];\r\n\t\t\tswitch (iDateType1){\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tsVal1 = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\taDateParts1 = sVal1.split(':');\r\n\t\t\t\t\tsVal1 = '';\r\n\t\t\t\t\tiDateQty1 = aDateParts1[2].replace('-', '');\r\n\t\t\t\t\tiDateQty1 = iDateQty1.replace(/>>/, '');\r\n\t\t\t\t\tsTime1 = aDateParts1[1];\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (left(aDateParts1[2], 1)=='-'){\r\n\t\t\t\t\t\tsWhen1 = '-';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsWhen1 = '';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tiDateType2 = vValues[11];\r\n\t\t\tswitch (iDateType2){\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tsVal2 = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\taDateParts2 = sVal2.split(':');\r\n\t\t\t\t\tsVal2 = '';\r\n\t\t\t\t\tiDateQty2 = aDateParts2[2].replace('-', '');\r\n\t\t\t\t\tiDateQty2 = iDateQty2.replace(/>>/, '');\r\n\t\t\t\t\tsTime2 = aDateParts2[1];\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (left(aDateParts2[2], 1)=='-'){\r\n\t\t\t\t\t\tsWhen2 = '-';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsWhen2 = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tswitch (document.getElementById(vSSB + '_searchcommand_' + vRow).value){\r\n\t\t\tcase 'searchleft': case 'searchright':\r\n\t\t\t\tdocument.getElementById(vSSB + '_value_container_' + vRow).innerHTML = 'Quantity of Characters: 
Value: ';\r\n\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_col_' + vRow).innerHTML = ' ';\r\n\t\t\t\tdocument.getElementById(vSSB + '_numeric_col_' + vRow).innerHTML = '';\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'searchbetween':\r\n\r\n\t\t\t\taSSBCals[vRow] = [new CalendarPopup(\"super_cal_popup\"), new CalendarPopup(\"super_cal_popup\")];\r\n\t\t\t\taSSBCals[vRow][0].showYearNavigation();\r\n\t\t\t\taSSBCals[vRow][1].showYearNavigation();\r\n\r\n\t\t\t\tvar strSBtwn = '';\r\n\r\n\t\t\t\tstrSBtwn = '
';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + '';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + '';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + ' \"\"';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + '
';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + '
  
';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + '
to';\r\n\t\t\t\t\r\n\t\t\t\tstrSBtwn = strSBtwn + '';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + '';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + ' \"\"';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + '
';\r\n\t\t\t\t\r\n\t\t\t\tstrSBtwn = strSBtwn + '
  
';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + '
';\r\n\r\n\r\n\t\t\t\tdocument.getElementById(vSSB + '_value_container_' + vRow).innerHTML = strSBtwn;\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_col_' + vRow).innerHTML = '';\r\n\t\t\t\tdocument.getElementById(vSSB + '_numeric_col_' + vRow).innerHTML = '';\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'isnumeric': case 'isdate': case 'isnull':\r\n\t\t\t\tdocument.getElementById(vSSB + '_value_container_' + vRow).innerHTML = ' ';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_col_' + vRow).innerHTML = ' ';\r\n\t\t\t\tdocument.getElementById(vSSB + '_numeric_col_' + vRow).innerHTML = ' ';\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'searchflagoff': case 'searchflagon':\r\n\t\t\t\tdocument.getElementById(vSSB + '_value_container_' + vRow).innerHTML = 'Bit Position: ';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_col_' + vRow).innerHTML = ' ';\r\n\t\t\t\tdocument.getElementById(vSSB + '_numeric_col_' + vRow).innerHTML = ' ';\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'searchgreaterthan': case 'searchgreaterthanequal': case 'searchlessthan': case 'searchlessthanequal': case 'searchexact': case 'searchlike':\r\n\t\t\t\taSSBCals[vRow] = [new CalendarPopup(\"super_cal_popup\")];\r\n\t\t\t\taSSBCals[vRow][0].showYearNavigation();\r\n\r\n\t\t\t\tvar strSBtwn = '';\r\n\r\n\t\t\t\tstrSBtwn = '';\r\n\t\t\t\t\r\n\t\t\t\tstrSBtwn = strSBtwn + ''\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + ' \"\"';\r\n\r\n\t\t\t\tstrSBtwn = strSBtwn + '
';\r\n\t\t\t\t\r\n\t\t\t\tstrSBtwn = strSBtwn + '
  
';\r\n\r\n\t\t\t\tdocument.getElementById(vSSB + '_value_container_' + vRow).innerHTML = strSBtwn;\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_col_' + vRow).innerHTML = '';\r\n\t\t\t\tdocument.getElementById(vSSB + '_numeric_col_' + vRow).innerHTML = '';\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'searchzipcodeprox':\r\n\t\t\t\tdocument.getElementById(vSSB + '_value_container_' + vRow).innerHTML = 'ZIP Code: 
Proximity in Miles: 
';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_col_' + vRow).innerHTML = ' ';\r\n\t\t\t\tdocument.getElementById(vSSB + '_numeric_col_' + vRow).innerHTML = ' ';\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tdocument.getElementById(vSSB + '_value_container_' + vRow).innerHTML = '';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_col_' + vRow).innerHTML = ' ';\r\n\t\t\t\tdocument.getElementById(vSSB + '_numeric_col_' + vRow).innerHTML = '';\r\n\r\n\t\t}\r\n\r\n\t\tBuildSSBValue(vSSB);\r\n\r\n\t}\r\n\r\n\tfunction SSBUseNumeric(vSSB, vRow){\r\n\t\ttry{\r\n\t\t\tif (document.getElementById(vSSB + '_numeric_' + vRow).checked==true){\r\n\t\t\t\tif (isNaN(document.getElementById(vSSB + '_value_' + vRow).value)){\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_value_' + vRow).value = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (document.getElementById(vSSB + '_searchcommand_' + vRow).value=='searchbetween'){\r\n\t\t\t\t\tif (isNaN(document.getElementById(vSSB + '_value_' + vRow + '_2').value)){\r\n\t\t\t\t\t\tdocument.getElementById(vSSB + '_value_' + vRow + '_2').value = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.getElementById(vSSB + '_dateshow_' + vRow).checked = false;\r\n\t\t\t\tShowSSBDates(vSSB, vRow);\r\n\t\t\t} else {\r\n\t\t\t\tBuildSSBValue(vSSB);\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (err){\r\n\t\t\t//alert(err.message);\r\n\t\t\tBuildSSBValue(vSSB);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction ShowSSBDates(vSSB, vRow){\r\n\t\ttry{\r\n\t\t\tif (document.getElementById(vSSB + '_dateshow_' + vRow).checked==true){\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_1').style.display = 'inline';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_2').style.display = 'block';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_3').style.display = 'block';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_container_' + vRow + '_1').style.display = 'inline';\r\n\t\t\t\tdocument.getElementById(vSSB + '_numeric_' + vRow).checked = false;\r\n\r\n\t\t\t\tif (document.getElementById(vSSB + '_searchcommand_' + vRow).value=='searchbetween'){\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_1a').style.display = 'inline';\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_2a').style.display = 'block';\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_3a').style.display = 'block';\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_date_container_' + vRow + '_2').style.display = 'inline';\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_1').style.display = 'none';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_2').style.display = 'none';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_3').style.display = 'none';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_container_' + vRow + '_1').style.display = 'none';\r\n\t\t\t\tdocument.getElementById(vSSB + '_date_type_' + vRow + '_1').checked = true;\r\n\r\n\t\t\t\tif (document.getElementById(vSSB + '_searchcommand_' + vRow).value=='searchbetween'){\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_date_type_' + vRow + '_1a').checked = true;\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_1a').style.display = 'none';\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_2a').style.display = 'none';\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_date_radio_' + vRow + '_3a').style.display = 'none';\r\n\t\t\t\t\tdocument.getElementById(vSSB + '_date_container_' + vRow + '_2').style.display = 'none';\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tcatch (err){\r\n\t\t\t//alert(err.message);\r\n\t\t}\r\n\r\n\t\tBuildSSBValue(vSSB);\r\n\t}\r\n\r\n\tfunction SSBLoadInitial(vSSB){\r\n\t\tvar aFilters = document.getElementById(vSSB + '_initial_value').value.split('|');\r\n\t\tvar aFilterInfo = new Array();\r\n\t\tvar strType = '';\r\n\r\n\t\tvar bL1 = false;\r\n\t\tvar bL2 = false;\r\n\t\tvar bR1 = false;\r\n\t\tvar bR2 = false;\r\n\t\tvar bNot = false;\r\n\t\tvar bDate = false;\r\n\t\tvar iDateType1 = 1;\r\n\t\tvar iDateType2 = 1;\r\n\t\tvar bNum = false;\r\n\t\tvar sVal1 = '';\r\n\t\tvar sVal2 = '';\r\n\t\tvar sVal3 = '';\r\n\r\n\t\ttry{\r\n\t\t\t\r\n\t\t\tfor (var iFilter = 0; iFilter < aFilters.length; iFilter++){\r\n\r\n\t\t\t\tbL1 = false;\r\n\t\t\t\tbL2 = false;\r\n\t\t\t\tbR1 = false;\r\n\t\t\t\tbR2 = false;\r\n\t\t\t\tbNot = false;\r\n\t\t\t\tbDate = false;\r\n\t\t\t\tiDateType1 = 1;\r\n\t\t\t\tiDateType2 = 1;\r\n\t\t\t\tbNum = false;\r\n\t\t\t\tsVal1 = '';\r\n\t\t\t\tsVal2 = '';\r\n\t\t\t\tsVal3 = '';\r\n\r\n\t\t\t\tif ((aFilters[iFilter]=='or')||(aFilters[iFilter]=='and')){\r\n\t\t\t\t\tswitch (aFilters[iFilter]){\r\n\t\t\t\t\t\tcase 'or':\r\n\t\t\t\t\t\t\tstrType = '|or|';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault :\r\n\t\t\t\t\t\t\tstrType = '|and|';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tiFilter++;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstrType = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\taFilterInfo = aFilters[iFilter].split('~');\r\n\r\n\t\t\t\tif (left(aFilterInfo[0], 2)=='(('){\r\n\t\t\t\t\tbL1 = true;\r\n\t\t\t\t\tbL2 = true;\r\n\t\t\t\t} else if (left(aFilterInfo[0], 1)=='('){\r\n\t\t\t\t\tbL1 = true;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\taFilterInfo[0] = aFilterInfo[0].replace(/\\(/g, '');\r\n\r\n\t\t\t\tif (right(aFilterInfo[0], 3)=='not'){\r\n\t\t\t\t\tbNot = true;\r\n\t\t\t\t\taFilterInfo[0] = left(aFilterInfo[0], (aFilterInfo[0].length - 3));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (right(aFilterInfo[1], 2)=='))'){\r\n\t\t\t\t\tbR1 = true;\r\n\t\t\t\t\tbR2 = true;\r\n\t\t\t\t} else if (right(aFilterInfo[1], 1)==')'){\r\n\t\t\t\t\tbR1 = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\taFilterInfo[1] = aFilterInfo[1].replace(/\\)/g, '');\r\n\r\n\t\t\t\tswitch (aFilterInfo[0]){\r\n\t\t\t\t\tcase 'searchzipcodeprox':\r\n\t\t\t\t\t\tsVal1 = aFilterInfo[2];\r\n\t\t\t\t\t\tsVal2 = aFilterInfo[3];\r\n\r\n\t\t\t\t\t\tif (right(aFilterInfo[4], 2)=='))'){\r\n\t\t\t\t\t\t\tbR1 = true;\r\n\t\t\t\t\t\t\tbR2 = true;\r\n\t\t\t\t\t\t} else if (right(aFilterInfo[4], 1)==')'){\r\n\t\t\t\t\t\t\tbR1 = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsVal3 = aFilterInfo[4].replace(/\\)/g, '');\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'searchbetween':\r\n\t\t\t\t\t\tif (left(aFilterInfo[2], 1)=='@'){\r\n\t\t\t\t\t\t\tbNum = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isDate(aFilterInfo[2])){\r\n\t\t\t\t\t\t\tbDate = true;\r\n\t\t\t\t\t\t} else if (left(aFilterInfo[2], 7)=='<>'){\r\n\t\t\t\t\t\t\tbDate = true;\r\n\t\t\t\t\t\t\tiDateType1 = 2;\r\n\t\t\t\t\t\t} else if (left(aFilterInfo[2], 9)=='<>'){\r\n\t\t\t\t\t\t\tbDate = true;\r\n\t\t\t\t\t\t\tiDateType2 = 2;\r\n\t\t\t\t\t\t} else if (left(aFilterInfo[3], 9)=='<>'){\r\n\t\t\t\t\t\t\tbDate = true;\r\n\t\t\t\t\t\t\tiDateType1 = 2;\r\n\t\t\t\t\t\t} else if (left(aFilterInfo[2], 9)=='<
\" + message + \"
\", sIDToReplace);\r\n\r\n\t\tfunction writeElements(sElements, sIDToReplace) {\r\n\t\t\tif (sIDToReplace) {\r\n\t\t\t\t$('#' + sIDToReplace).replaceWith(sElements);\r\n\t\t\t} else {\r\n\t\t\t\t// This breaks when validators are AJAX loaded into a completed\r\n\t\t\t\t// page because it re-opens the document which clears the entire\r\n\t\t\t\t// page. It is left for backwards compatability for versions of\r\n\t\t\t\t// QB that do not provide an element to replace.\r\n\t\t\t\tdocument.write(sElements);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction addField(name, type, required, message, sIDToReplace) {\r\n\t\t\tself.fields[self.numItems] = new validatorField(name, self.numItems, type, form, required, id);\r\n\t\t\tvar sElements = \"\" +\r\n\t\t\t \"
\" + message + \"
\"\r\n\r\n\t\t\twriteElements(sElements, sIDToReplace)\r\n\t\t\tself.numItems++;\r\n\t\t}\r\n\r\n\t\tfunction addCondition(child, parent, parentType, condition) {\r\n\t\t\tif (!self.conditions[child]) {\r\n\t\t\t\tself.conditions[child] = new Array();\r\n\t\t\t}\r\n\t\t\tself.conditions[child][self.conditions[child].length] = new validatorCondition(form, parent, parentType, condition);\r\n\t\t}\r\n\r\n\t\tfunction check() {\r\n\t\t\tvar tdiv = document.getElementById('validator' + id);\r\n\t\t\ttdiv.style.display = 'none';\r\n\r\n\t\t\tvar returnVal = true;\r\n\t\t\tvar bCheck;\r\n\r\n\t\t\tvar jumpTo = '';\r\n\t\t\tvar bJumpToQuestion = false;\r\n\r\n\t\t\tfor (var i = 0; i < self.numItems; i++) {\r\n\t\t\t\tbCheck = true;\r\n\t\t\t\tif (self.conditions[self.fields[i].name] != undefined) {\r\n\t\t\t\t\tfor (var j = 0; j < self.conditions[self.fields[i].name].length; j++) {\r\n\t\t\t\t\t\tif (!self.conditions[self.fields[i].name][j].test()) {\r\n\t\t\t\t\t\t\tbCheck = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (bCheck) {\r\n\t\t\t\t\tif (!self.fields[i].validateField()) {\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t\tif (jumpTo == '') {\r\n\t\t\t\t\t\t\tjumpTo = 'anchor' + id + i;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.fields[i].clearValidation();\r\n\t\t\t\t}\r\n\t\t\t\tif (jumpOnError) {\r\n\t\t\t\t\tif (jumpToTop) {\r\n\t\t\t\t\t\tscroll(0,0);\r\n\t\t\t\t\t} else if (jumpTo != '') {\r\n\t\t\t\t\t\t//location.href = '#' + jumpTo;\r\n\t\t\t\t\t\tbJumpToQuestion = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(bJumpToQuestion){\r\n\t\t\t\t$('body').animate({ scrollTop: $('.mgrfront-error:visible:gt(0)').offset().top - 200}, 200);\r\n\t\t\t}\r\n\r\n\t\t\tif ((disableForm==true)&&(returnVal==true)){\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(form + '_submit').disabled = true;\r\n\t\t\t\t}\r\n\t\t\t\tcatch (err){\r\n\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById(form + '_clear').disabled = true;\r\n\t\t\t\t}\r\n\t\t\t\tcatch (err){\r\n\t\t\t\t\t//alert(err.message);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (disableWithLightbox==true){\r\n\t\t\t\t\tDisableLB();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn returnVal;\r\n\t\t}\r\n\r\n\t\tfunction clear() {\r\n\t\t\tvar tdiv = document.getElementById('validator' + id);\r\n\t\t\ttdiv.style.display = 'none';\r\n\t\t\tfor (var i = 0; i < self.numItems; i++) {\r\n\t\t\t\tself.fields[i].clearValidation();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction validatorCondition(form, name, type, condition) {\r\n\t\tthis.form = form;\r\n\t\tthis.name = name;\r\n\t\tthis.type = type;\r\n\t\tthis.condition = condition;\r\n\r\n\t\tthis.test = test;\r\n\r\n\t\tvar conditioner = '';\r\n\r\n\t\tfunction test() {\r\n\t\t\ttry{\r\n\t\t\t\tvar value;\r\n\r\n\t\t\t\tif (type == 'radio' || type == 'checkbox') {\r\n\t\t\t\t\tvalue = getCheckedValue(name);\r\n\t\t\t\t\tconditioner = condition;\r\n\t\t\t\t} else if (type == 'matchfield'){\r\n\t\t\t\t\tvalue = document.forms[form].elements[name].value;\r\n\t\t\t\t\tconditioner = document.forms[form].elements[condition].value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalue = document.forms[form].elements[name].value;\r\n\t\t\t\t\tconditioner = condition;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isRegExp(conditioner)) {\r\n\t\t\t\t\tif (conditioner.test(value)){\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (isString(conditioner)) {\r\n\t\t\t\t\tif (value==conditioner){\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (isArray(conditioner)) {\r\n\t\t\t\t\tfor (var i = 0; i < conditioner.length; i++) {\r\n\t\t\t\t\t\tif (isRegExp(conditioner[i])) {\r\n\t\t\t\t\t\t\tif (conditioner[i].test(value)){\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (isString(conditioner[i])) {\r\n\t\t\t\t\t\t\tif (value == conditioner[i]){\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcatch (err){\r\n\t\t\t\t//alert(err.message);\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction validatorField(name, num, type, form, required, id) {\r\n\t\tthis.name = name;\r\n\t\tthis.num = num;\r\n\t\tthis.type = type;\r\n\t\tthis.form = form\r\n\t\tthis.required = required;\r\n\t\tthis.id = id;\r\n\r\n\t\tthis.validateField = validateField;\r\n\t\tthis.clearValidation = clearValidation;\r\n\r\n\r\n\r\n\t\tfunction validateField() {\r\n\t\t\tvar regexpTypes = new Array();\r\n\t\t\tregexpTypes['regex']\t\t= new RegExp(/^regex~/i);\r\n\t\t\tregexpTypes['regexnot']\t\t= new RegExp(/^regexnot~/i);\r\n\t\t\tregexpTypes['matchfield']\t= new RegExp(/^matchfield~/i);\r\n\t\t\tregexpTypes['matchfieldnot']= new RegExp(/^matchfieldnot~/i);\r\n\t\t\tregexpTypes['matchvalue']\t= new RegExp(/^matchvalue~/i);\r\n\t\t\tregexpTypes['matchvaluenot']= new RegExp(/^matchvaluenot~/i);\r\n\t\t\tregexpTypes['matchleft']\t= new RegExp(/^matchleft~/i);\r\n\t\t\tregexpTypes['matchleftnot']\t= new RegExp(/^matchleftnot~/i);\r\n\t\t\tregexpTypes['matchright']\t= new RegExp(/^matchright~/i);\r\n\t\t\tregexpTypes['matchrightnot']= new RegExp(/matchrightnot~/i);\r\n\t\t\tregexpTypes['matchlen']\t\t= new RegExp(/matchlen~/i);\r\n\t\t\tregexpTypes['matchlennot']\t= new RegExp(/matchlennot~/i);\r\n\t\t\tregexpTypes['radio']\t\t= new RegExp(/^radio$/i);\r\n\t\t\tregexpTypes['checkbox']\t\t= new RegExp(/^checkbox$/i);\r\n\r\n\t\t\tvar regExpressions = new Array();\r\n\t\t\tregExpressions['phone']\t\t= new RegExp(/^[1-9]\\d{2}\\-\\d{3}\\-\\d{4}$/);\r\n\t\t\tregExpressions['zip']\t\t= new RegExp(/(^\\d{5}$)|(^\\d{5}-\\d{4}$)|(^[a-zA-Z]\\d[a-zA-Z][- ]?\\d[a-zA-Z]\\d$)/);\r\n\t\t\tregExpressions['integer']\t= new RegExp(/^-?\\d+$/);\r\n\t\t\tregExpressions['decimal']\t= new RegExp(/^-?\\d*.?\\d*$/);\r\n\t\t\tregExpressions['currency']\t= new RegExp(/^-?\\d*(.\\d{0,6})?$/);\r\n\t\t\tregExpressions['date']\t\t= new RegExp(/^(0[1-9]|1[012]|[1-9])[-/](0[1-9]|[12][0-9]|3[01]|[1-9])[-/](19|20)\\d{2}$/);\r\n\t\t\tregExpressions['datetime']\t= new RegExp(/^(0[1-9]|1[012]|[1-9])[-/](0[1-9]|[12][0-9]|3[01]|[1-9])[-/](19|20)?[0-9][0-9]( )([0-2])?[1-9]:([0-5][0-9])(:[0-5][0-9])?( (AM|PM))?$/);\r\n\t\t\tregExpressions['email']\t\t= new RegExp(GLOBAL_JS_EMAIL_REGEX);\r\n\t\t\tregExpressions['social']\t= new RegExp(/^\\d{3}-\\d{2}-\\d{4}$/);\r\n\t\t\tregExpressions['url']\t\t= new RegExp(/^http(s)?:\\/\\/.*/);\r\n\t\t\tregExpressions['ip']\t\t= new RegExp(/\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b/);\r\n\r\n\t\t\tvar vdiv = document.getElementById('validate' + id + name + num);\r\n\t\t\tvar tdiv = document.getElementById('validator' + id);\r\n\t\t\tvar field = document.getElementById(name);\r\n\r\n\t\t\t// There is no HTML element with ID == `name` if it is a Checkbox_Question or Radio_Question. The IDs are `name_0`, `name_1`, etc.\r\n\t\t\t// Plus, it seems that the disabled check below expects an array of elements. So, get the array in this scenario.\r\n\t\t\t// - tschwab, May 2020\r\n\t\t\tvar isCheckOrRadio = (regexpTypes['radio'].test(type) || regexpTypes['checkbox'].test(type));\r\n\t\t\tif (isCheckOrRadio) {\r\n\t\t\t\tfield = document.getElementsByName(name);\r\n\t\t\t}\r\n\r\n\t\t\tif (field === null || (isCheckOrRadio && (field.length == 0))) {\r\n\t\t\t\treturnVal = false;\r\n\t\t\t\tvdiv.innerHTML = 'Failed to validate this field.
This can occur if validation is added to a Question_Label.'\r\n\t\t\t} else if(!$(field).is(\":visible\")) {\r\n\t\t\t\t//Do not validate an element that cannot be seen\r\n\t\t\t\treturnVal = true;\r\n\t\t\t} else {\r\n\r\n\t\t\t\tvar value;\r\n\t\t\t\tif (isCheckOrRadio) {\r\n\t\t\t\t\tvalue = getCheckedValue(name);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalue = field.value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (value == undefined) {\r\n\t\t\t\t\tvalue = \"\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar trimmedValue = trim(value);\r\n\r\n\t\t\t\tvar returnVal = true;\r\n\r\n\t\t\t\tvdiv.style.display = 'none';\r\n\r\n\t\t\t\t//jsmotherman 3.6.2017 v64 - This code was in v50 but removed in v51, not sure why. This makes validation succeed on disabled inputs.\r\n\t\t\t\t//Typically, validation conditions are used for this in managerfront. However, for configurator, you cannot currently add conditions.\r\n\t\t\t\t//Instead, this display activator Test() will disable inputs if customForm == true, which is a global used in the product detail page for configurator.\r\n\t\t\t\t//I think it would probably be fine to remove the check for customForm - I believe it was added just in case that change would break things.\r\n\t\t\t\tif (isCheckOrRadio) {\r\n\t\t\t\t\tbIsDisabled = true;\r\n\t\t\t\t\tfor (i = 0; i < field.length; i++) {\r\n\t\t\t\t\t\tif (field[i].disabled == false) {\r\n\t\t\t\t\t\t\tbIsDisabled = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (bIsDisabled) {\r\n\t\t\t\t\t\treturn returnVal;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (field.disabled == true) {\r\n\t\t\t\t\treturn returnVal;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (isRegExp(type)) {\r\n\t\t\t\t\tif (trimmedValue != \"\") {\r\n\t\t\t\t\t\tvar oRegEx = new RegExp(type);\r\n\t\t\t\t\t\treturnVal = !oRegEx.test(value);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (trimmedValue == \"\" && required) {\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['regex'].test(type)) {\r\n\t\t\t\t\tvar matchReg = eval(trim(type.split('~').slice(1).join('~')));\r\n\t\t\t\t\tif (isRegExp(matchReg)) {\r\n\t\t\t\t\t\tvar oRegEx = new RegExp(matchReg);\r\n\t\t\t\t\t\treturnVal = !oRegEx.test(value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['regexnot'].test(type)) {\r\n\t\t\t\t\tvar matchReg = eval(trim(type.split('~').slice(1).join('~')));\r\n\t\t\t\t\tif (isRegExp(matchReg)) {\r\n\t\t\t\t\t\tvar oRegEx = new RegExp(matchReg);\r\n\t\t\t\t\t\treturnVal = oRegEx.test(value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchfield'].test(type)) {\r\n\t\t\t\t\tvar matchName = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (value != document.forms[form].elements[matchName].value)\r\n\t\t\t\t\t\treturnVal = false;\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchfieldnot'].test(type)) {\r\n\t\t\t\t\tvar matchName = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (value == document.forms[form].elements[matchName].value)\r\n\t\t\t\t\t\treturnVal = false;\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchvalue'].test(type)) {\r\n\t\t\t\t\tvar matchVal = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (value == matchVal)\r\n\t\t\t\t\t\treturnVal = false;\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchvaluenot'].test(type)) {\r\n\t\t\t\t\tvar matchVal = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (value != matchVal)\r\n\t\t\t\t\t\treturnVal = false;\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchleft'].test(type)) {\r\n\t\t\t\t\tvar matchVal = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (left(value, matchVal.length).toLowerCase() == matchVal.toLowerCase()){\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchleftnot'].test(type)) {\r\n\t\t\t\t\tvar matchVal = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (left(value, matchVal.length).toLowerCase() != matchVal.toLowerCase()){\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchright'].test(type)) {\r\n\t\t\t\t\tvar matchVal = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (right(value, matchVal.length).toLowerCase() == matchVal.toLowerCase()){\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchrightnot'].test(type)) {\r\n\t\t\t\t\tvar matchVal = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (right(value, matchVal.length).toLowerCase() != matchVal.toLowerCase()){\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchlen'].test(type)) {\r\n\t\t\t\t\tvar matchVal = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (value.length == parseInt(matchVal)){\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (trimmedValue != \"\" && regexpTypes['matchlennot'].test(type)) {\r\n\t\t\t\t\tvar matchVal = type.split('~').slice(1).join('~');\r\n\t\t\t\t\tif (value.length != parseInt(matchVal)){\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (trimmedValue != \"\" && regExpressions[type] != undefined) {\r\n\t\t\t\t\t\treturnVal = regExpressions[type].test(value);\r\n\t\t\t\t\t} else if (trimmedValue == \"\" && required) {\r\n\t\t\t\t\t\treturnVal = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!returnVal) {\r\n\t\t\t\tvdiv.style.display = 'block';\r\n\t\t\t\ttdiv.style.display = 'block';\r\n\t\t\t}\r\n\t\t\treturn returnVal;\r\n\t\t}\r\n\r\n\t\tfunction clearValidation() {\r\n\t\t\tvar vdiv = document.getElementById('validate' + id + name + num);\r\n\t\t\tvdiv.style.display = 'none';\r\n\t\t}\r\n\t}\r\n\r\n\t// Trim white space from beginning and end of string\r\n\tfunction trim(stringToTrim) {\r\n\t\treturn stringToTrim.replace(/^\\s+|\\s+$/g,\"\");\r\n\t}\r\n\r\n\tfunction isArray() {\r\n\t\treturn arguments[0] instanceof Array;\r\n\t}\r\n\r\n\tfunction isRegExp() {\r\n\t\treturn arguments[0] instanceof RegExp;\r\n\t}\r\n\r\n\tfunction isString() {\r\n\t\tif (typeof arguments[0] == 'string')\r\n\t\t\treturn true;\r\n\t\tif (typeof arguments[0] == 'object') {\r\n\t\t\tvar criterion = arguments[0].constructor.toString().match(/string/i);\r\n\t\t\treturn (criterion != null);\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tfunction getCheckedValue(radioName) {\r\n\t\tvar radioObj = document.getElementsByName(radioName);\r\n\t\tif (!radioObj) {\r\n\r\n\t\t\tvar radioObj = document.getElementById(radioName);\r\n\t\t\tif (!radioObj) {\r\n\t\t\t\treturn \"\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar radioLength = radioObj.length;\r\n\t\tif (radioLength == undefined){\r\n\t\t\tif(radioObj.checked){\r\n\t\t\t\treturn radioObj.value;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (var i = 0; i < radioLength; i++) {\r\n\t\t\tif (radioObj[i].checked) {\r\n\t\t\t\treturn radioObj[i].value;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\t/************************************************************************************\r\n\t*** END VALIDATION FUNCTIONS ********************************************************\r\n\t************************************************************************************/\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** START DISABLE LIGHTBOX FUNCTIONS ************************************************\r\n\t************************************************************************************/\r\n\tfunction DisableLB(){\r\n\t\tvar oLBG = document.getElementById('disableLBbg');\r\n\t\tvar oLPic = document.getElementById('disableLBwin');\r\n\r\n\t\tvar popwidth = 300;\r\n\r\n\t\tif (window.innerHeight && window.scrollMaxY) {\r\n\t\t\toLBG.style.width = document.body.scrollWidth;\r\n\t\t\toLBG.style.height = window.innerHeight + window.scrollMaxY;\r\n\t\t} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac\r\n\t\t\toLBG.style.width = document.body.scrollWidth;\r\n\t\t\toLBG.style.height = document.body.scrollHeight;\r\n\t\t} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari\r\n\t\t\toLBG.style.width = document.body.offsetWidth;\r\n\t\t\toLBG.style.height = document.body.offsetHeight;\r\n\t\t}\r\n\r\n\t\tif (self.innerHeight) {\t// all except Explorer\r\n\t\t\toLPic.style.left = (self.innerWidth / 2) - (popwidth / 2);\r\n\t\t\toLPic.style.top = self.pageYOffset + (self.innerHeight / 10);\r\n\t\t} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode\r\n\t\t\toLPic.style.left = (document.documentElement.clientWidth / 2) - (popwidth / 2);\r\n\t\t\toLPic.style.top = document.documentElement.scrollTop + (document.documentElement.clientHeight / 10);\r\n\t\t} else if (document.body) { // other Explorers\r\n\t\t\toLPic.style.left = (document.body.clientWidth / 2) - (popwidth / 2);\r\n\t\t\toLPic.style.top = document.body.scrollTop + (document.body.clientHeight / 10);\r\n\t\t}\r\n\r\n\t\toLBG.style.display = 'block';\r\n\t\toLPic.style.display = 'block';\r\n\r\n\t}\r\n\r\n\tfunction HideDisableLB(){\r\n\t\tdocument.getElementById('disableLBbg').style.display = 'none';\r\n\t\tdocument.getElementById('disableLBwin').style.display = 'none';\r\n\t}\r\n\t/************************************************************************************\r\n\t*** END DISABLE LIGHTBOX FUNCTIONS **************************************************\r\n\t************************************************************************************/\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** START GENERAL FUNCTIONS *********************************************************\r\n\t************************************************************************************/\r\n\r\n\t// Trim white space from beginning and end of string\r\n\tfunction trim(stringToTrim) {\r\n\t\treturn stringToTrim.replace(/^\\s+|\\s+$/g,\"\");\r\n\t}\r\n\r\n\t// URL Encode a string\r\n\tfunction URLEncode(string) {\r\n\t\t// The Javascript escape and unescape functions do not correspond\r\n\t\t// with what browsers actually do...\r\n\t\tvar SAFECHARS = \"0123456789\" +\t\t\t\t\t// Numeric\r\n\t\t\t\t\t\t\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" +\t// Alphabetic\r\n\t\t\t\t\t\t\"abcdefghijklmnopqrstuvwxyz\" +\r\n\t\t\t\t\t\t\"-_.!~*()\";\t\t\t\t\t// RFC2396 Mark characters - Removed ' 6/11/2010\r\n\t\tvar HEX = \"0123456789ABCDEF\";\r\n\r\n\t\tvar plaintext = string\r\n\t\tif (plaintext==undefined||plaintext==null){\r\n\t\t\tplaintext = '';\r\n\t\t}\r\n\t\tvar encoded = \"\";\r\n\t\tfor (var i = 0; i < plaintext.length; i++ ) {\r\n\t\t\tvar ch = plaintext.charAt(i);\r\n\t\t\tif (ch == \" \") {\r\n\t\t\t\tencoded += \"+\";\t\t\t\t// x-www-urlencoded, rather than %20\r\n\t\t\t} else if (SAFECHARS.indexOf(ch) != -1) {\r\n\t\t\t\tencoded += ch;\r\n\t\t\t} else {\r\n\t\t\t\tvar charCode = ch.charCodeAt(0);\r\n\t\t\t\t// Unicode Character cannot be encoded using standard URL encoding. (URL encoding only supports 8-bit characters.) A space (+) will be substituted.\"\r\n\t\t\t\tif (charCode > 255) {\r\n\t\t\t\t\tencoded += \"+\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tencoded += \"%\";\r\n\t\t\t\t\tencoded += HEX.charAt((charCode >> 4) & 0xF);\r\n\t\t\t\t\tencoded += HEX.charAt(charCode & 0xF);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} // for\t\t\r\n\r\n\t\treturn encoded;\r\n\t};\r\n\r\n\t// Is an array?\r\n\tfunction isArray() {\r\n\t\treturn arguments[0] instanceof Array;\r\n\t}\r\n\r\n\t// Is a regular expression?\r\n\tfunction isRegExp() {\r\n\t\treturn arguments[0] instanceof RegExp;\r\n\t}\r\n\t\t\t\t\r\n\t// Is a string?\r\n\tfunction isString() {\r\n\t\tif (typeof arguments[0] == 'string')\r\n\t\t\treturn true;\r\n\t\tif (typeof arguments[0] == 'object') { \r\n\t\t\tvar criterion = arguments[0].constructor.toString().match(/string/i); \r\n\t\t\treturn (criterion != null); \r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\t// Divide a string in to two parts on a divider\r\n\tfunction divide(string, divider) {\r\n\t\tvar strReplace = genID();\r\n\t\tstring = string.replace(divider,strReplace);\t\r\n\t\treturn Array(string.split(strReplace)[0],string.split(strReplace)[1]);\r\n\t}\r\n\r\n\t// Create an XMLHttpRequest object\r\n\tfunction createRequestObject(){\r\n\t\tvar request_o;\r\n\t\tvar browser = navigator.appName;\r\n\t\tif(browser == \"Microsoft Internet Explorer\"){\r\n\t\t\trequest_o = new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n\t\t}else{\r\n\t\t\trequest_o = new XMLHttpRequest();\r\n\t\t}\r\n\t\treturn request_o;\r\n\t}\r\n\t\r\n\t// Decimal to Hexadecimal\r\n\tfunction dec2hex(dec) {\r\n\t\tvar hD=\"0123456789ABCDEF\";\r\n\t\tvar hex = hD.substr(dec&15,1);\r\n\t\twhile (dec>15) {\r\n\t\t\tdec >>= 4;\r\n\t\t\thhex = hD.substr(dec&15,1) + hex;\r\n\t\t}\r\n\t\treturn hex;\r\n\t}\r\n\r\n\t// Hexadecimal to Decimal\r\n\tfunction hex2ddec(hex) {\r\n\t\treturn parseInt(hex,16);\r\n\t} \r\n\r\n\t// Generate 32 character hex ID\r\n\tfunction genID() {\r\n\t\tvar id = \"\";\r\n\t\tvar i;\r\n\t\tfor (i = 0; i < 32; i++) {\r\n\t\t\tid = id + dec2hex(Math.round(16*Math.random()));\r\n\t\t}\r\n\t\treturn id;\r\n\t}\r\n\r\n\tfunction left(str, n){\r\n\t\tif (n <= 0)\r\n\t\t\treturn \"\";\r\n\t\telse if (n > String(str).length)\r\n\t\t\treturn str;\r\n\t\telse\r\n\t\t\treturn String(str).substring(0,n);\r\n\t}\r\n\r\n\tfunction right(str, n){\r\n\t\tif (n <= 0)\r\n\t\t return \"\";\r\n\t\telse if (n > String(str).length)\r\n\t\t return str;\r\n\t\telse {\r\n\t\t var iLen = String(str).length;\r\n\t\t return String(str).substring(iLen, iLen - n);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction mid(str, start, len){\r\n\t\t// Make sure start and len are within proper bounds\r\n\t\tif (start < 0 || len < 0) return \"\";\r\n\t\tvar iEnd, iLen = String(str).length;\r\n\t\tif (start + len > iLen)\r\n\t\t\t iEnd = iLen;\r\n\t\telse\r\n\t\t\t iEnd = start + len;\r\n\t\treturn String(str).substring(start,iEnd);\r\n\t}\r\n\r\n\tfunction NumbersOnly(myfield, e){\r\n\t\tvar key;\r\n\t\tvar keychar;\r\n\r\n\t\tif (window.event)\r\n\t\t key = window.event.keyCode;\r\n\t\telse if (e)\r\n\t\t key = e.which;\r\n\t\telse\r\n\t\t return true;\r\n\t\tkeychar = String.fromCharCode(key);\r\n\r\n\t\t// control keys\r\n\t\tif ((key==null) || (key==0) || (key==8) || (key==9) || (key==27) )\r\n\t\t return true;\r\n\r\n\t\t// no enters or spaces\r\n\t\telse if ((key==13) || (key==32))\r\n\t\t\treturn false;\r\n\r\n\t\t// only one deicmal\r\n\t\telse if (keychar=='.' && myfield.value.indexOf('.')>-1)\r\n\t\t\treturn false;\r\n\r\n\t\t// numbers\r\n\t\telse if (((\"0123456789\").indexOf(keychar) > -1))\r\n\t\t return true;\r\n\r\n\t\telse\r\n\t\t return false;\r\n\t}\r\n\r\n\tfunction NumbersOnlyWithDecimal(myfield, e){\r\n\t\tvar key;\r\n\t\tvar keychar;\r\n\r\n\t\tif (window.event)\r\n\t\t key = window.event.keyCode;\r\n\t\telse if (e)\r\n\t\t key = e.which;\r\n\t\telse\r\n\t\t return true;\r\n\t\tkeychar = String.fromCharCode(key);\r\n\r\n\t\t// control keys\r\n\t\tif ((key==null) || (key==0) || (key==8) || (key==9) || (key==27) )\r\n\t\t return true;\r\n\r\n\t\t// no enters or spaces\r\n\t\telse if ((key==13) || (key==32))\r\n\t\t\treturn false;\r\n\r\n\t\t// only one deicmal\r\n\t\telse if (keychar=='.' && myfield.value.indexOf('.')>-1)\r\n\t\t\treturn false;\r\n\r\n\t\t// numbers\r\n\t\telse if (((\"0123456789.\").indexOf(keychar) > -1))\r\n\t\t return true;\r\n\r\n\t\telse\r\n\t\t return false;\r\n\t}\r\n\r\n\tfunction getQueryVariable(vQSVar) {\r\n\t\tvar strQuery = window.location.search.substring(1);\r\n\t\tvar aVars = strQuery.split('&');\r\n\t\tfor (var iVar = 0; iVar < aVars.length; iVar++) {\r\n\t\t\tvar aQS = aVars[iVar].split('=');\r\n\t\t\tif (aQS[0]==vQSVar) {\r\n\t\t\t\treturn aQS[1];\r\n\t\t\t}\r\n\t\t} \r\n\t}\r\n\r\n\tfunction isDate(dateStr) {\r\n\r\n\t\tvar datePat = /^(\\d{1,2})(\\/|-)(\\d{1,2})(\\/|-)(\\d{4})$/;\r\n\t\tvar matchArray = dateStr.match(datePat); // is the format ok?\r\n\r\n\t\tif (matchArray == null) {\r\n\t\t\t//alert(\"Please enter date as either mm/dd/yyyy or mm-dd-yyyy.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tmonth = matchArray[1]; // p@rse date into variables\r\n\t\tday = matchArray[3];\r\n\t\tyear = matchArray[5];\r\n\r\n\t\tif (month < 1 || month > 12) { // check month range\r\n\t\t\t//alert(\"Month must be between 1 and 12.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (day < 1 || day > 31) {\r\n\t\t\t//alert(\"Day must be between 1 and 31.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif ((month==4 || month==6 || month==9 || month==11) && day==31) {\r\n\t\t\t//alert(\"Month \"+month+\" doesn`t have 31 days!\")\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (month == 2) { // check for february 29th\r\n\t\t\tvar isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));\r\n\t\t\tif (day > 29 || (day==29 && !isleap)) {\r\n\t\t\t\t//alert(\"February \" + year + \" doesn`t have \" + day + \" days!\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true; // date is valid\r\n\t}\r\n\r\n\tfunction escapeHTML(str){\r\n\t var div = document.createElement('div');\r\n\t var text = document.createTextNode(str);\r\n\t div.appendChild(text);\r\n\t return div.innerHTML;\r\n\t}\r\n\r\n\tfunction fncLongDate(vDate){\r\n\r\n\t\tif(0==Date.parse(vDate)||isNaN(Date.parse(vDate))){\r\n\t\t\treturn '\"' + vDate + '\" is not a valid date.';\r\n\t\t} else {\r\n\t\t\ttry{\r\n\t\t\t\tvar dMyDate = new Date(vDate);\r\n\r\n\t\t\t\tvar sDay = dMyDate.getDay();\r\n\t\t\t\tvar sMonth = dMyDate.getMonth();\r\n\t\t\t\tvar sWeekday = dMyDate.getDate();\r\n\t\t\t\tvar sYear = dMyDate.getYear();\r\n\t\t\t\tvar sHours = dMyDate.getHours();\r\n\t\t\t\tvar sMins = dMyDate.getMinutes();\r\n\t\t\t\tvar sSecs = dMyDate.getSeconds();\r\n\t\t\t\tvar sMornAfter = 'AM';\r\n\r\n\t\t\t\tif (sYear < 2000){\r\n\t\t\t\t\tsYear = sYear + 1900;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (sHours >= 12) {\r\n\t\t\t\t\tif (sHours > 12){\r\n\t\t\t\t\t\tsHours = sHours - 12;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsMornAfter = 'PM';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (sHours == 0){\r\n\t\t\t\t\t\tsHours = 12;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsMornAfter = 'AM';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (sMins < 10){\r\n\t\t\t\t\tvar sTempMin = sMins;\r\n\t\t\t\t\tsMins = '0' + sTempMin;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (sSecs < 10){\r\n\t\t\t\t\tvar sTempSec = sSecs;\r\n\t\t\t\t\tsSecs = '0' + sTempSec;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar aDays = new Array(\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\");\r\n\t\t\t\tvar aMonths = new Array(\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\");\r\n\r\n\t\t\t\tvar sLongDate = aDays[sDay] + ', ' + aMonths[sMonth] + ' ' + sWeekday + ', ' + sYear + ' ' + sHours + ':' + sMins + ':' + sSecs + ' ' + sMornAfter;\r\n\r\n\t\t\t\treturn sLongDate;\t\t\t\t\r\n\t\t\t}\r\n\t\t\tcatch (err){\r\n\t\t\t\t//alert(err.message);\r\n\t\t\t\treturn 'Error formatting date.';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/************************************************************************************\r\n\t*** END GENERAL FUNCTIONS *********************************************************\r\n\t*************************************************************************************/"]}